Skip to content

Commit e55599f

Browse files
committed
Adapt build-result-capture script for GE plugin 3.17+
The build-result-capture.init.gradle script was making some assumptions about extensions and plugin application that do not apply with the newest GE plugin. Fixes #449
1 parent d85b006 commit e55599f

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

sources/src/resources/init-scripts/gradle-actions.build-result-capture.init.gradle

+19-9
Original file line numberDiff line numberDiff line change
@@ -32,31 +32,41 @@ if (isTopLevelBuild) {
3232

3333
// Use the Develocity plugin to also capture build scan links, when available
3434
settingsEvaluated { settings ->
35-
settings.pluginManager.withPlugin(GE_PLUGIN_ID) {
36-
// Only execute if develocity plugin isn't applied.
37-
if (!settings.extensions.findByName(DEVELOCITY_EXTENSION)) {
35+
def captureBuildScanLink = {
36+
// Prefer the 'develocity' extension, if available
37+
if (settings.extensions.findByName(DEVELOCITY_EXTENSION)) {
38+
captureUsingBuildScanPublished(settings.extensions[DEVELOCITY_EXTENSION].buildScan, invocationId, resultsWriter)
39+
} else {
3840
captureUsingBuildScanPublished(settings.extensions[GE_EXTENSION].buildScan, invocationId, resultsWriter)
3941
}
4042
}
41-
43+
settings.pluginManager.withPlugin(GE_PLUGIN_ID, captureBuildScanLink)
4244
settings.pluginManager.withPlugin(DEVELOCITY_PLUGIN_ID) {
43-
captureUsingBuildScanPublished(settings.extensions[DEVELOCITY_EXTENSION].buildScan, invocationId, resultsWriter)
45+
// Develocity plugin applies GE plugin: avoid duplicate call
46+
if (settings.pluginManager.hasPlugin(GE_PLUGIN_ID)) return
47+
captureBuildScanLink()
4448
}
4549
}
4650
} else if (atLeastGradle3) {
4751
projectsEvaluated { gradle ->
4852
// By default, use 'buildFinished' to capture build results
4953
captureUsingBuildFinished(gradle, invocationId, resultsWriter)
5054

51-
gradle.rootProject.pluginManager.withPlugin(BUILD_SCAN_PLUGIN_ID) {
52-
// Only execute if develocity plugin isn't applied.
53-
if (!gradle.rootProject.extensions.findByName(DEVELOCITY_EXTENSION)) {
55+
def captureBuildScanLink = {
56+
// Prefer the 'develocity' extension, if available
57+
if (gradle.rootProject.extensions.findByName(DEVELOCITY_EXTENSION)) {
58+
captureUsingBuildScanPublished(gradle.rootProject.extensions[DEVELOCITY_EXTENSION].buildScan, invocationId, resultsWriter)
59+
} else {
5460
captureUsingBuildScanPublished(gradle.rootProject.extensions[BUILD_SCAN_EXTENSION], invocationId, resultsWriter)
5561
}
5662
}
5763

64+
gradle.rootProject.pluginManager.withPlugin(BUILD_SCAN_PLUGIN_ID, captureBuildScanLink)
65+
5866
gradle.rootProject.pluginManager.withPlugin(DEVELOCITY_PLUGIN_ID) {
59-
captureUsingBuildScanPublished(gradle.rootProject.extensions[DEVELOCITY_EXTENSION].buildScan, invocationId, resultsWriter)
67+
// Develocity plugin applies Build Scan plugin: avoid duplicate call
68+
if (gradle.rootProject.pluginManager.hasPlugin(BUILD_SCAN_PLUGIN_ID)) return
69+
captureBuildScanLink()
6070
}
6171
}
6272
}

0 commit comments

Comments
 (0)