From 7e87a5e8d907d50587cb7d5352842a2502758636 Mon Sep 17 00:00:00 2001 From: daz Date: Wed, 3 Apr 2024 17:46:18 -0600 Subject: [PATCH] Improve test coverage for different plugin versions --- .../BaseInitScriptTest.groovy | 51 +++++++++++-------- .../TestBuildResultRecorder.groovy | 14 +++++ .../TestDevelocityInjection.groovy | 47 +---------------- 3 files changed, 46 insertions(+), 66 deletions(-) diff --git a/sources/test/init-scripts/src/test/groovy/com/gradle/gradlebuildaction/BaseInitScriptTest.groovy b/sources/test/init-scripts/src/test/groovy/com/gradle/gradlebuildaction/BaseInitScriptTest.groovy index 38f297c..664d4de 100644 --- a/sources/test/init-scripts/src/test/groovy/com/gradle/gradlebuildaction/BaseInitScriptTest.groovy +++ b/sources/test/init-scripts/src/test/groovy/com/gradle/gradlebuildaction/BaseInitScriptTest.groovy @@ -130,30 +130,29 @@ class BaseInitScriptTest extends Specification { } def declareDevelocityPluginApplication(GradleVersion gradleVersion, URI serverUrl = mockScansServer.address) { - settingsFile.text = maybeAddPluginsToSettings(gradleVersion, null, serverUrl) + settingsFile.text - buildFile.text = maybeAddPluginsToRootProject(gradleVersion, null, serverUrl) + buildFile.text + settingsFile.text = maybeAddPluginsToSettings(gradleVersion, false, null, serverUrl) + settingsFile.text + buildFile.text = maybeAddPluginsToRootProject(gradleVersion, false, null, serverUrl) + buildFile.text + } + + def declareLegacyGradleEnterprisePluginApplication(GradleVersion gradleVersion, URI serverUrl = mockScansServer.address) { + settingsFile.text = maybeAddPluginsToSettings(gradleVersion, true, null, serverUrl) + settingsFile.text + buildFile.text = maybeAddPluginsToRootProject(gradleVersion, true, null, serverUrl) + buildFile.text } def declareDevelocityPluginAndCcudPluginApplication(GradleVersion gradleVersion, URI serverUrl = mockScansServer.address) { - settingsFile.text = maybeAddPluginsToSettings(gradleVersion, CCUD_PLUGIN_VERSION, serverUrl) + settingsFile.text - buildFile.text = maybeAddPluginsToRootProject(gradleVersion, CCUD_PLUGIN_VERSION, serverUrl) + buildFile.text + settingsFile.text = maybeAddPluginsToSettings(gradleVersion, false, CCUD_PLUGIN_VERSION, serverUrl) + settingsFile.text + buildFile.text = maybeAddPluginsToRootProject(gradleVersion, false, CCUD_PLUGIN_VERSION, serverUrl) + buildFile.text } - String maybeAddPluginsToSettings(GradleVersion gradleVersion, String ccudPluginVersion, URI serverUri) { + String maybeAddPluginsToSettings(GradleVersion gradleVersion, boolean legacy, String ccudPluginVersion, URI serverUri) { if (gradleVersion < GradleVersion.version('6.0')) { '' // applied in build.gradle } else { - """ - plugins { - id 'com.gradle.develocity' version '${DEVELOCITY_PLUGIN_VERSION}' - ${ccudPluginVersion ? "id 'com.gradle.common-custom-user-data-gradle-plugin' version '$ccudPluginVersion'" : ""} - } - develocity.server = '$serverUri' - """ + configuredPlugin(gradleVersion, legacy, ccudPluginVersion, serverUri) } } - String maybeAddPluginsToRootProject(GradleVersion gradleVersion, String ccudPluginVersion, URI serverUrl) { + String maybeAddPluginsToRootProject(GradleVersion gradleVersion, boolean legacy, String ccudPluginVersion, URI serverUrl) { if (gradleVersion < GradleVersion.version('5.0')) { """ plugins { @@ -166,18 +165,30 @@ class BaseInitScriptTest extends Specification { } """ } else if (gradleVersion < GradleVersion.version('6.0')) { - """ - plugins { - id 'com.gradle.develocity' version '${DEVELOCITY_PLUGIN_VERSION}' - ${ccudPluginVersion ? "id 'com.gradle.common-custom-user-data-gradle-plugin' version '$ccudPluginVersion'" : ""} - } - develocity.server = '$serverUrl' - """ + configuredPlugin(gradleVersion, legacy, ccudPluginVersion, serverUrl) } else { '' // applied in settings.gradle } } + String configuredPlugin(GradleVersion gradleVersion, boolean legacy, String ccudPluginVersion, URI serverUri) { + def pluginId = legacy + ? (gradleVersion < GradleVersion.version('6.0') ? 'com.gradle.build-scan' : 'com.gradle.enterprise') + : 'com.gradle.develocity' + def pluginVersion = legacy ? "3.16.2" : DEVELOCITY_PLUGIN_VERSION + def configBlock = legacy ? 'gradleEnterprise' : 'develocity' + """ + plugins { + id '$pluginId' version '$pluginVersion' + ${ccudPluginVersion ? "id 'com.gradle.common-custom-user-data-gradle-plugin' version '$ccudPluginVersion'" : ""} + } + $configBlock { + server = '$serverUri' + ${legacy ? "buildScan { publishAlways() }" : ""} + } + """ + } + def addFailingTaskToBuild() { buildFile << ''' task expectFailure { diff --git a/sources/test/init-scripts/src/test/groovy/com/gradle/gradlebuildaction/TestBuildResultRecorder.groovy b/sources/test/init-scripts/src/test/groovy/com/gradle/gradlebuildaction/TestBuildResultRecorder.groovy index 0e217f0..8f5402a 100644 --- a/sources/test/init-scripts/src/test/groovy/com/gradle/gradlebuildaction/TestBuildResultRecorder.groovy +++ b/sources/test/init-scripts/src/test/groovy/com/gradle/gradlebuildaction/TestBuildResultRecorder.groovy @@ -68,6 +68,20 @@ class TestBuildResultRecorder extends BaseInitScriptTest { testGradleVersion << ALL_VERSIONS } + def "produces build results file for #testGradleVersion with legacy enterprise plugin publishing build scan"() { + assumeTrue testGradleVersion.compatibleWithCurrentJvm + + when: + declareLegacyGradleEnterprisePluginApplication(testGradleVersion.gradleVersion) + run(['help'], initScript, testGradleVersion.gradleVersion) + + then: + assertResults('help', testGradleVersion, false, true) + + where: + testGradleVersion << ALL_VERSIONS + } + def "produces build results file for #testGradleVersion with Develocity plugin and no build scan published"() { assumeTrue testGradleVersion.compatibleWithCurrentJvm diff --git a/sources/test/init-scripts/src/test/groovy/com/gradle/gradlebuildaction/TestDevelocityInjection.groovy b/sources/test/init-scripts/src/test/groovy/com/gradle/gradlebuildaction/TestDevelocityInjection.groovy index eb62de2..3c87ab3 100644 --- a/sources/test/init-scripts/src/test/groovy/com/gradle/gradlebuildaction/TestDevelocityInjection.groovy +++ b/sources/test/init-scripts/src/test/groovy/com/gradle/gradlebuildaction/TestDevelocityInjection.groovy @@ -55,8 +55,7 @@ class TestDevelocityInjection extends BaseInitScriptTest { assumeTrue testGradleVersion.compatibleWithCurrentJvm given: - settingsFile.text = maybeAddDevelocityPlugin(testGradleVersion.gradleVersion, '3.16.2') - buildFile.text = maybeAddBuildScanPlugin(testGradleVersion.gradleVersion, '3.16.2') + declareLegacyGradleEnterprisePluginApplication(testGradleVersion.gradleVersion) when: def result = run(testGradleVersion, testConfig()) @@ -443,50 +442,6 @@ class TestDevelocityInjection extends BaseInitScriptTest { } } - private String maybeAddDevelocityPlugin(GradleVersion gradleVersion, String gePluginVersion) { - if (gradleVersion < GradleVersion.version('6.0')) { - '' // applied in build.gradle - } else { - """ - plugins { - id 'com.gradle.develocity' version '${gePluginVersion}' - } - develocity { - server = '${mockScansServer.address}' - buildScan { - publishAlways() - } - } - """ - } - } - - private String maybeAddBuildScanPlugin(GradleVersion gradleVersion, String buildScanPluginVersion) { - if (gradleVersion < GradleVersion.version('5.0')) { - """ - plugins { - id 'com.gradle.build-scan' version '1.16' - } - buildScan { - server = '${mockScansServer.address}' - publishAlways() - } - """ - } else if (gradleVersion < GradleVersion.version('6.0')) { - """ - plugins { - id 'com.gradle.develocity' version '${buildScanPluginVersion}' - } - buildScan { - server = '${mockScansServer.address}' - publishAlways() - } - """ - } else { - '' // applied in settings.gradle - } - } - private TestConfig testConfig(String develocityPluginVersion = DEVELOCITY_PLUGIN_VERSION) { new TestConfig(develocityPluginVersion) }