-
Notifications
You must be signed in to change notification settings - Fork 5k
Configure lifecycle tasks for all projects without filtering subprojects #14440
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
I ran the full "ready for release" pipeline for this change: https://builds.gradle.org/viewLog.html?buildId=37864357 |
named("quickTest") { | ||
dependsOn("embeddedIntegTest") | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not confident with the change because now soak
tests can be triggered using quickTest
lifecycle task, which is probably not semantically correct.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's ok.
id("gradlebuild.classycle") | ||
id("gradlebuild.integration-tests") | ||
id("gradlebuild.cross-version-tests") | ||
id("gradlebuild.ci-lifecycle") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure if it is a good idea to add a separate plugin here and not register the lifecycle tasks directly in java-library plugin.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think both solutions are fine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good next step.
As next step, it would be great if we could reduce the root-project plugin further to only do the "setupTimeoutMonitorOnCI" and do all the lifecycle task wiring in the corresponding subproject(s). See my comment.
group = "verification" | ||
dependsOn( | ||
"compileAll", ":docs:checkstyleApi", "codeQuality", ":internal-build-reports:allIncubationReportsZip", | ||
":docs:checkstyleApi", ":internal-build-reports:allIncubationReportsZip", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't need to do it now, but eventually it would be better if we won't have to add a sanityCheck task to the root proejct at all. Instead the "sanityCheck" of the subprojects in question here should get extended in the places where the corresponding tasks --- like allIncubationReportsZip
-- are created.
Same for compileAll/services:createBuildReceipt above.
id("gradlebuild.classycle") | ||
id("gradlebuild.integration-tests") | ||
id("gradlebuild.cross-version-tests") | ||
id("gradlebuild.ci-lifecycle") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think both solutions are fine.
named("quickTest") { | ||
dependsOn("embeddedIntegTest") | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's ok.
soak
,distributions-integ-tests
andarchitecture-test
subprojects are executed on CI using different lifecycle tasks than the rest.They are currently filtered out and do not have the usual lifecycle tasks that all the other subprojects have registered.
They are also filtered in
GradleSubprojectProvider
TeamCity configuration and executed using their own dedicated lifecycle tasks.This change registers the lifecycle tasks for all the subprojects without filtering them. TeamCity configuration still filters and picks which subprojects to execute when and using which lifecycle task.