Skip to content

Conversation

rieske
Copy link
Contributor

@rieske rieske commented Sep 7, 2020

soak, distributions-integ-tests and architecture-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.

@rieske rieske requested a review from a team September 7, 2020 06:10
@rieske rieske self-assigned this Sep 7, 2020
@rieske
Copy link
Contributor Author

rieske commented Sep 7, 2020

I ran the full "ready for release" pipeline for this change: https://builds.gradle.org/viewLog.html?buildId=37864357

Comment on lines +49 to +51
named("quickTest") {
dependsOn("embeddedIntegTest")
}
Copy link
Contributor Author

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.

Copy link
Contributor

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")
Copy link
Contributor Author

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.

Copy link
Contributor

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.

Copy link
Contributor

@jjohannes jjohannes left a 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",
Copy link
Contributor

@jjohannes jjohannes Sep 7, 2020

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")
Copy link
Contributor

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.

Comment on lines +49 to +51
named("quickTest") {
dependsOn("embeddedIntegTest")
}
Copy link
Contributor

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.

@rieske rieske merged commit ffd4cd3 into master Sep 7, 2020
@rieske rieske deleted the vv/lifecycle-no-subprojects branch September 7, 2020 08:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants