From ef76a971e2fa3f867b617efd72f2fbd72cf6f8bc Mon Sep 17 00:00:00 2001 From: Daz DeBoer Date: Mon, 28 Aug 2023 19:59:09 +0200 Subject: [PATCH] Simplify GE-inject config params (#863) --- .github/workflows/ci-full-check.yml | 4 ++- .github/workflows/ci-quick-check.yml | 4 ++- .../integ-test-inject-gradle-enterprise.yml | 11 ++++--- README.md | 25 +++++----------- ...ction.inject-gradle-enterprise.init.gradle | 22 +++++++------- .../TestGradleEnterpriseInjection.groovy | 30 +++++++++---------- 6 files changed, 47 insertions(+), 49 deletions(-) diff --git a/.github/workflows/ci-full-check.yml b/.github/workflows/ci-full-check.yml index 96c3a80..3fee091 100644 --- a/.github/workflows/ci-full-check.yml +++ b/.github/workflows/ci-full-check.yml @@ -45,9 +45,11 @@ jobs: cache-key-prefix: ${{github.run_number}}- gradle-enterprise-injection: - uses: ./github/workflows/integ-test-inject-gradle-enterprise.yml + uses: ./.github/workflows/integ-test-inject-gradle-enterprise.yml with: cache-key-prefix: ${{github.run_number}}- + secrets: + GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_SOLUTIONS_ACCESS_TOKEN }} provision-gradle-versions: uses: ./.github/workflows/integ-test-provision-gradle-versions.yml diff --git a/.github/workflows/ci-quick-check.yml b/.github/workflows/ci-quick-check.yml index 3450608..0538617 100644 --- a/.github/workflows/ci-quick-check.yml +++ b/.github/workflows/ci-quick-check.yml @@ -73,10 +73,12 @@ jobs: gradle-enterprise-injection: needs: build-distribution - uses: ./github/workflows/integ-test-inject-gradle-enterprise.yml + uses: ./.github/workflows/integ-test-inject-gradle-enterprise.yml with: runner-os: '["ubuntu-latest"]' download-dist: true + secrets: + GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_SOLUTIONS_ACCESS_TOKEN }} provision-gradle-versions: needs: build-distribution diff --git a/.github/workflows/integ-test-inject-gradle-enterprise.yml b/.github/workflows/integ-test-inject-gradle-enterprise.yml index 65d17a9..8bc9995 100644 --- a/.github/workflows/integ-test-inject-gradle-enterprise.yml +++ b/.github/workflows/integ-test-inject-gradle-enterprise.yml @@ -11,16 +11,19 @@ on: download-dist: type: boolean default: false + secrets: + GRADLE_ENTERPRISE_ACCESS_KEY: + required: true env: DOWNLOAD_DIST: ${{ inputs.download-dist }} GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: provision-gradle-versions-${{ inputs.cache-key-prefix }} GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true GRADLE_ENTERPRISE_INJECTION_ENABLED: true - GRADLE_ENTERPRISE_INJECTION_SERVER_URL: https://ge.solutions-team.gradle.com - GRADLE_ENTERPRISE_INJECTION_GE_PLUGIN_VERSION: 3.14.1 - GRADLE_ENTERPRISE_INJECTION_CCUD_PLUGIN_VERSION: 1.11.1 - GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_SOLUTIONS_ACCESS_TOKEN }} + GRADLE_ENTERPRISE_URL: https://ge.solutions-team.gradle.com + GRADLE_ENTERPRISE_PLUGIN_VERSION: 3.14.1 + GRADLE_ENTERPRISE_CCUD_PLUGIN_VERSION: 1.11.1 + GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} jobs: inject-gradle-enterprise: diff --git a/README.md b/README.md index 6e55242..a7b2d22 100644 --- a/README.md +++ b/README.md @@ -744,8 +744,8 @@ name: Run build with Gradle Enterprise injection env: GRADLE_ENTERPRISE_INJECTION_ENABLED: true - GRADLE_ENTERPRISE_INJECTION_SERVER_URL: https://ge.gradle.org - GRADLE_ENTERPRISE_INJECTION_GE_PLUGIN_VERSION: 3.14.1 + GRADLE_ENTERPRISE_URL: https://ge.gradle.org + GRADLE_ENTERPRISE_PLUGIN_VERSION: 3.14.1 GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_KEY }} # Required to publish scans to ge.gradle.org jobs: @@ -771,18 +771,9 @@ The `init-script` supports a number of additional configuration parameters that | Variable | Required | Description | | --- | --- | --- | | GRADLE_ENTERPRISE_INJECTION_ENABLED | :white_check_mark: | enables Gradle Enterprise injection | -| GRADLE_ENTERPRISE_INJECTION_SERVER_URL | :white_check_mark: | the URL of the Gradle Enterprise server | -| GRADLE_ENTERPRISE_INJECTION_ALLOW_UNTRUSTED_SERVER | | allow communication with an untrusted server; set to _true_ if your Gradle Enterprise instance is using a self-signed certificate | -| GRADLE_ENTERPRISE_INJECTION_ENFORCE_SERVER_URL | | enforce the configured Gradle Enterprise URL over a URL configured in the project's build; set to _true_ to enforce publication of build scans to the configured Gradle Enterprise URL | -| GRADLE_ENTERPRISE_INJECTION_GE_PLUGIN_VERSION | :white_check_mark: | the version of the [Gradle Enterprise Gradle plugin](https://docs.gradle.com/enterprise/gradle-plugin/) to apply | -| GRADLE_ENTERPRISE_INJECTION_CCUD_PLUGIN_VERSION | | the version of the [Common Custom User Data Gradle plugin](https://github.com/gradle/common-custom-user-data-gradle-plugin) to apply, if any | -| GRADLE_ENTERPRISE_INJECTION_PLUGIN_REPOSITORY_URL | | the URL of the repository to use when resolving the GE and CCUD plugins; the Gradle Plugin Portal is used by default | - -## Authentication -To authenticate against the Gradle Enterprise server, you will need to define an environment variable named `GRADLE_ENTERPRISE_ACCESS_KEY`. -This is not required directly by the Gradle Enterprise injection, but will be required by the Gradle Enterprise Gradle Plugin when connecting to the server. - -To do this, define a [GitHub Actions secret](https://docs.github.com/en/actions/security-guides/encrypted-secrets) at the repository or organization level, and reference this as an environment variable in your workflow file. -See the [minimal example above](#enabling-gradle-enterprise-injection) for the syntax. - -To generate a Gradle Enterprise Access Key, refer to the [docs for the Gradle Enterprise Gradle plugin](https://docs.gradle.com/enterprise/gradle-plugin/#manual_access_key_configuration). +| GRADLE_ENTERPRISE_URL | :white_check_mark: | the URL of the Gradle Enterprise server | +| GRADLE_ENTERPRISE_ALLOW_UNTRUSTED_SERVER | | allow communication with an untrusted server; set to _true_ if your Gradle Enterprise instance is using a self-signed certificate | +| GRADLE_ENTERPRISE_ENFORCE_URL | | enforce the configured Gradle Enterprise URL over a URL configured in the project's build; set to _true_ to enforce publication of build scans to the configured Gradle Enterprise URL | +| GRADLE_ENTERPRISE_PLUGIN_VERSION | :white_check_mark: | the version of the [Gradle Enterprise Gradle plugin](https://docs.gradle.com/enterprise/gradle-plugin/) to apply | +| GRADLE_ENTERPRISE_CCUD_PLUGIN_VERSION | | the version of the [Common Custom User Data Gradle plugin](https://github.com/gradle/common-custom-user-data-gradle-plugin) to apply, if any | +| GRADLE_ENTERPRISE_PLUGIN_REPOSITORY_URL | | the URL of the repository to use when resolving the GE and CCUD plugins; the Gradle Plugin Portal is used by default | diff --git a/src/resources/init-scripts/gradle-build-action.inject-gradle-enterprise.init.gradle b/src/resources/init-scripts/gradle-build-action.inject-gradle-enterprise.init.gradle index 5e0227e..6e40341 100644 --- a/src/resources/init-scripts/gradle-build-action.inject-gradle-enterprise.init.gradle +++ b/src/resources/init-scripts/gradle-build-action.inject-gradle-enterprise.init.gradle @@ -15,14 +15,14 @@ initscript { } // finish early if injection is disabled - def gradleInjectionEnabled = getInputParam("gradle-enterprise-injection.enabled") + def gradleInjectionEnabled = getInputParam("gradle-enterprise.injection-enabled") if (gradleInjectionEnabled != "true") { return } - def pluginRepositoryUrl = getInputParam('gradle-enterprise-injection.plugin-repository-url') - def gePluginVersion = getInputParam('gradle-enterprise-injection.ge-plugin-version') - def ccudPluginVersion = getInputParam('gradle-enterprise-injection.ccud-plugin-version') + def pluginRepositoryUrl = getInputParam('gradle-enterprise.plugin-repository.url') + def gePluginVersion = getInputParam('gradle-enterprise.plugin.version') + def ccudPluginVersion = getInputParam('gradle-enterprise.ccud-plugin.version') def atLeastGradle5 = GradleVersion.current() >= GradleVersion.version('5.0') def atLeastGradle4 = GradleVersion.current() >= GradleVersion.version('4.0') @@ -71,17 +71,17 @@ def getInputParam = { String name -> } // finish early if injection is disabled -def gradleInjectionEnabled = getInputParam("gradle-enterprise-injection.enabled") +def gradleInjectionEnabled = getInputParam("gradle-enterprise.injection-enabled") if (gradleInjectionEnabled != "true") { return } -def geUrl = getInputParam('gradle-enterprise-injection.server-url') -def geAllowUntrustedServer = Boolean.parseBoolean(getInputParam('gradle-enterprise-injection.allow-untrusted-server')) -def geEnforceUrl = Boolean.parseBoolean(getInputParam('gradle-enterprise-injection.enforce-server-url')) -def buildScanUploadInBackground = Boolean.parseBoolean(getInputParam('gradle-enterprise-injection.build-scan-upload-in-background')) -def gePluginVersion = getInputParam('gradle-enterprise-injection.ge-plugin-version') -def ccudPluginVersion = getInputParam('gradle-enterprise-injection.ccud-plugin-version') +def geUrl = getInputParam('gradle-enterprise.url') +def geAllowUntrustedServer = Boolean.parseBoolean(getInputParam('gradle-enterprise.allow-untrusted-server')) +def geEnforceUrl = Boolean.parseBoolean(getInputParam('gradle-enterprise.enforce-url')) +def buildScanUploadInBackground = Boolean.parseBoolean(getInputParam('gradle-enterprise.build-scan.upload-in-background')) +def gePluginVersion = getInputParam('gradle-enterprise.plugin.version') +def ccudPluginVersion = getInputParam('gradle-enterprise.ccud-plugin.version') def atLeastGradle4 = GradleVersion.current() >= GradleVersion.version('4.0') diff --git a/test/init-scripts/src/test/groovy/com/gradle/gradlebuildaction/TestGradleEnterpriseInjection.groovy b/test/init-scripts/src/test/groovy/com/gradle/gradlebuildaction/TestGradleEnterpriseInjection.groovy index 91cbcf4..cbcede0 100644 --- a/test/init-scripts/src/test/groovy/com/gradle/gradlebuildaction/TestGradleEnterpriseInjection.groovy +++ b/test/init-scripts/src/test/groovy/com/gradle/gradlebuildaction/TestGradleEnterpriseInjection.groovy @@ -370,30 +370,30 @@ class TestGradleEnterpriseInjection extends BaseInitScriptTest { def getEnvVars() { Map envVars = [ GRADLE_ENTERPRISE_INJECTION_ENABLED: "true", - GRADLE_ENTERPRISE_INJECTION_SERVER_URL: serverUrl, - GRADLE_ENTERPRISE_INJECTION_ALLOW_UNTRUSTED_SERVER: "true", - GRADLE_ENTERPRISE_INJECTION_GE_PLUGIN_VERSION: GE_PLUGIN_VERSION, - GRADLE_ENTERPRISE_INJECTION_BUILD_SCAN_UPLOAD_IN_BACKGROUND: "true" // Need to upload in background since our Mock server doesn't cope with foreground upload + GRADLE_ENTERPRISE_URL: serverUrl, + GRADLE_ENTERPRISE_ALLOW_UNTRUSTED_SERVER: "true", + GRADLE_ENTERPRISE_PLUGIN_VERSION: GE_PLUGIN_VERSION, + GRADLE_ENTERPRISE_BUILD_SCAN_UPLOAD_IN_BACKGROUND: "true" // Need to upload in background since our Mock server doesn't cope with foreground upload ] - if (enforceUrl) envVars.put("GRADLE_ENTERPRISE_INJECTION_ENFORCE_SERVER_URL", "true") - if (ccudPluginVersion != null) envVars.put("GRADLE_ENTERPRISE_INJECTION_CCUD_PLUGIN_VERSION", ccudPluginVersion) - if (pluginRepositoryUrl != null) envVars.put("GRADLE_ENTERPRISE_INJECTION_PLUGIN_REPOSITORY_URL", pluginRepositoryUrl) + if (enforceUrl) envVars.put("GRADLE_ENTERPRISE_ENFORCE_URL", "true") + if (ccudPluginVersion != null) envVars.put("GRADLE_ENTERPRISE_CCUD_PLUGIN_VERSION", ccudPluginVersion) + if (pluginRepositoryUrl != null) envVars.put("GRADLE_ENTERPRISE_PLUGIN_REPOSITORY_URL", pluginRepositoryUrl) return envVars } def getJvmArgs() { List jvmArgs = [ - "-Dgradle-enterprise-injection.enabled=true", - "-Dgradle-enterprise-injection.server-url=$serverUrl", - "-Dgradle-enterprise-injection.allow-untrusted-server=true", - "-Dgradle-enterprise-injection.ge-plugin-version=$GE_PLUGIN_VERSION", - "-Dgradle-enterprise-injection.build-scan-upload-in-background=true" + "-Dgradle-enterprise.injection-enabled=true", + "-Dgradle-enterprise.url=$serverUrl", + "-Dgradle-enterprise.allow-untrusted-server=true", + "-Dgradle-enterprise.plugin.version=$GE_PLUGIN_VERSION", + "-Dgradle-enterprise.build-scan.upload-in-background=true" ] - if (enforceUrl) jvmArgs.add("-Dgradle-enterprise-injection.enforce-server-url=true") - if (ccudPluginVersion != null) jvmArgs.add("-Dgradle-enterprise-injection.ccud-plugin-version=$ccudPluginVersion") - if (pluginRepositoryUrl != null) jvmArgs.add("-Dgradle-enterprise-injection.plugin-repository-url=$pluginRepositoryUrl") + if (enforceUrl) jvmArgs.add("-Dgradle-enterprise.enforce-url=true") + if (ccudPluginVersion != null) jvmArgs.add("-Dgradle-enterprise.ccud-plugin.version=$ccudPluginVersion") + if (pluginRepositoryUrl != null) jvmArgs.add("-Dgradle-enterprise.plugin-repository.url=$pluginRepositoryUrl") return jvmArgs.collect { it.toString() } // Convert from GStrings }