name: Test develocity injection on: workflow_call: inputs: cache-key-prefix: type: string runner-os: type: string default: '["ubuntu-latest", "windows-latest", "macos-latest"]' skip-dist: type: boolean default: false secrets: DEVELOCITY_ACCESS_KEY: required: true env: SKIP_DIST: ${{ inputs.skip-dist }} GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: inject-develocity-${{ inputs.cache-key-prefix }} jobs: inject-develocity: env: DEVELOCITY_INJECTION_ENABLED: true DEVELOCITY_URL: https://ge.solutions-team.gradle.com DEVELOCITY_PLUGIN_VERSION: ${{ matrix.plugin-version }} DEVELOCITY_CCUD_PLUGIN_VERSION: '2.0' ${{matrix.accessKeyEnv}}: ${{ secrets.DEVELOCITY_ACCESS_KEY }} strategy: fail-fast: false matrix: gradle: [current, 7.6.2, 6.9.4, 5.6.4] os: ${{fromJSON(inputs.runner-os)}} plugin-version: [3.16.2, 3.17.5] include: - plugin-version: 3.16.2 accessKeyEnv: GRADLE_ENTERPRISE_ACCESS_KEY - plugin-version: 3.17.5 accessKeyEnv: DEVELOCITY_ACCESS_KEY runs-on: ${{ matrix.os }} steps: - name: Checkout sources uses: actions/checkout@v4 - name: Initialize integ-test uses: ./.github/actions/init-integ-test - name: Setup Java uses: actions/setup-java@v4 with: distribution: temurin java-version: 11 - name: Setup Gradle id: setup-gradle uses: ./setup-gradle with: cache-read-only: false # For testing, allow writing cache entries on non-default branches gradle-version: ${{ matrix.gradle }} - name: Run Gradle build id: gradle working-directory: .github/workflow-samples/no-ge run: gradle help - name: Check Build Scan url if: ${{ !steps.gradle.outputs.build-scan-url }} uses: actions/github-script@v7 with: script: | core.setFailed('No Build Scan detected') - name: Check short lived token (DEVELOCITY_ACCESS_KEY) run: "[ ${#DEVELOCITY_ACCESS_KEY} -gt 500 ] || (echo 'DEVELOCITY_ACCESS_KEY does not look like a short lived token'; exit 1)" - name: Check short lived token (GRADLE_ENTERPRISE_ACCESS_KEY) run: "[ ${#GRADLE_ENTERPRISE_ACCESS_KEY} -gt 500 ] || (echo 'GRADLE_ENTERPRISE_ACCESS_KEY does not look like a short lived token'; exit 1)" inject-develocity-with-access-key: env: DEVELOCITY_INJECTION_ENABLED: true DEVELOCITY_URL: 'https://ge.solutions-team.gradle.com' DEVELOCITY_PLUGIN_VERSION: ${{ matrix.plugin-version }} DEVELOCITY_CCUD_PLUGIN_VERSION: '2.0' strategy: fail-fast: false matrix: gradle: [current, 7.6.2, 6.9.4, 5.6.4] os: ${{fromJSON(inputs.runner-os)}} plugin-version: [3.16.2, 3.17.5] runs-on: ${{ matrix.os }} steps: - name: Checkout sources uses: actions/checkout@v4 - name: Initialize integ-test uses: ./.github/actions/init-integ-test - name: Setup Java uses: actions/setup-java@v4 with: distribution: temurin java-version: 8 - name: Setup Gradle id: setup-gradle uses: ./setup-gradle with: cache-read-only: false # For testing, allow writing cache entries on non-default branches gradle-version: ${{ matrix.gradle }} develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }} develocity-token-expiry: 1 - name: Run Gradle build id: gradle working-directory: .github/workflow-samples/no-ge run: gradle help - name: Check short lived token (DEVELOCITY_ACCESS_KEY) run: "[ ${#DEVELOCITY_ACCESS_KEY} -gt 500 ] || (echo 'DEVELOCITY_ACCESS_KEY does not look like a short lived token'; exit 1)" - name: Check short lived token (GRADLE_ENTERPRISE_ACCESS_KEY) run: "[ ${#GRADLE_ENTERPRISE_ACCESS_KEY} -gt 500 ] || (echo 'GRADLE_ENTERPRISE_ACCESS_KEY does not look like a short lived token'; exit 1)" - name: Check Build Scan url if: ${{ !steps.gradle.outputs.build-scan-url }} uses: actions/github-script@v7 with: script: | core.setFailed('No Build Scan detected') inject-develocity-short-lived-token-failed: env: DEVELOCITY_INJECTION_ENABLED: true DEVELOCITY_URL: 'https://localhost:3333/' DEVELOCITY_PLUGIN_VERSION: ${{ matrix.plugin-version }} DEVELOCITY_CCUD_PLUGIN_VERSION: '2.0' # Access key also set as an env var, we want to check it does not leak GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} strategy: fail-fast: false matrix: gradle: [ current, 7.6.2, 6.9.4, 5.6.4 ] os: ${{fromJSON(inputs.runner-os)}} plugin-version: [ 3.16.2, 3.17.5 ] runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v4 - name: Initialize integ-test uses: ./.github/actions/init-integ-test - name: Setup Java uses: actions/setup-java@v4 with: distribution: temurin java-version: 8 - name: Setup Gradle id: setup-gradle uses: ./setup-gradle with: cache-read-only: false # For testing, allow writing cache entries on non-default branches develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }} - name: Run Gradle build id: gradle working-directory: .github/workflow-samples/no-ge run: gradle help - name: Check access key is not blank (DEVELOCITY_ACCESS_KEY) run: "[ \"${DEVELOCITY_ACCESS_KEY}\" != \"\" ] || (echo 'using DEVELOCITY_ACCESS_KEY!'; exit 1)" - name: Check access key is not blank (GRADLE_ENTERPRISE_ACCESS_KEY) run: "[ \"${GRADLE_ENTERPRISE_ACCESS_KEY}\" != \"\" ] || (echo 'GRADLE_ENTERPRISE_ACCESS_KEY is still supported in v3!'; exit 1)" inject-develocity-with-access-key-from-input-actions: env: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} strategy: fail-fast: false matrix: gradle: [ current, 7.6.2, 6.9.4, 5.6.4 ] os: ${{fromJSON(inputs.runner-os)}} plugin-version: [ 3.16.2, 3.17.5 ] runs-on: ${{ matrix.os }} steps: - name: Checkout sources uses: actions/checkout@v4 - name: Initialize integ-test uses: ./.github/actions/init-integ-test - name: Setup Java uses: actions/setup-java@v4 with: distribution: temurin java-version: 8 - name: Setup Gradle id: setup-gradle uses: ./setup-gradle with: cache-read-only: false # For testing, allow writing cache entries on non-default branches gradle-version: ${{ matrix.gradle }} develocity-injection-enabled: true develocity-url: 'https://ge.solutions-team.gradle.com' develocity-plugin-version: ${{ matrix.plugin-version }} - name: Run Gradle build id: gradle working-directory: .github/workflow-samples/no-ge run: gradle help - name: Check Build Scan url if: ${{ !steps.gradle.outputs.build-scan-url }} uses: actions/github-script@v7 with: script: | core.setFailed('No Build Scan detected')