Capture build results when config-cache is enabled

When enabled, the configuration-cache will cause the build to fail when a
`buildFinished` listener is added. Instead, use a BuildService to listen for task
failures and to write the results on build completion.
This commit is contained in:
Daz DeBoer
2022-06-04 22:53:36 -06:00
parent 500607bc35
commit 5203a0b09d
5 changed files with 56 additions and 7 deletions

View File

@@ -12,9 +12,12 @@ if (isTopLevelBuild) {
def atLeastGradle6 = version >= GradleVersion.version("6.0")
if (atLeastGradle6) {
def useBuildService = version >= GradleVersion.version("6.6")
settingsEvaluated { settings ->
if (settings.pluginManager.hasPlugin("com.gradle.enterprise")) {
captureUsingBuildScanPublished(settings.extensions["gradleEnterprise"].buildScan, settings.rootProject.name)
} else if (useBuildService) {
captureUsingBuildService(settings)
} else {
captureUsingBuildFinished(gradle)
}
@@ -30,7 +33,6 @@ if (isTopLevelBuild) {
}
}
def captureUsingBuildScanPublished(buildScanExtension, rootProjectName) {
buildScanExtension.with {
def requestedTasks = gradle.startParameter.taskNames.join(" ")
@@ -77,4 +79,8 @@ def captureUsingBuildFinished(gradle) {
def buildResultsFile = new File(buildResultsDir, System.getenv("GITHUB_ACTION") + System.currentTimeMillis() + ".json")
buildResultsFile << groovy.json.JsonOutput.toJson(buildResults)
}
}
}
def captureUsingBuildService(settings) {
apply from: 'build-result-capture-service.plugin.groovy'
}