From b17d107b8cab19295c0bc5d2e9dacf7598c42641 Mon Sep 17 00:00:00 2001 From: daz Date: Sat, 19 Aug 2023 17:26:13 -0600 Subject: [PATCH] Add test for detection of java toolchains --- .github/workflows/ci-full-check.yml | 5 ++ .github/workflows/ci-quick-check.yml | 7 ++ .../integ-test-detect-java-toolchains.yml | 82 +++++++++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 .github/workflows/integ-test-detect-java-toolchains.yml diff --git a/.github/workflows/ci-full-check.yml b/.github/workflows/ci-full-check.yml index 802f8fe6..6ec12810 100644 --- a/.github/workflows/ci-full-check.yml +++ b/.github/workflows/ci-full-check.yml @@ -83,3 +83,8 @@ jobs: uses: ./.github/workflows/integ-test-sample-gradle-plugin.yml with: cache-key-prefix: ${{github.run_number}}- + + toolchain-detection: + uses: ./.github/workflows/integ-test-detect-java-toolchains.yml + with: + cache-key-prefix: ${{github.run_number}}- diff --git a/.github/workflows/ci-quick-check.yml b/.github/workflows/ci-quick-check.yml index fdb2568f..06914b52 100644 --- a/.github/workflows/ci-quick-check.yml +++ b/.github/workflows/ci-quick-check.yml @@ -124,3 +124,10 @@ jobs: with: runner-os: '["ubuntu-latest"]' download-dist: true + + toolchain-detection: + needs: build-distribution + uses: ./.github/workflows/integ-test-detect-java-toolchains.yml + with: + runner-os: '["ubuntu-latest"]' + download-dist: true diff --git a/.github/workflows/integ-test-detect-java-toolchains.yml b/.github/workflows/integ-test-detect-java-toolchains.yml new file mode 100644 index 00000000..34e31f39 --- /dev/null +++ b/.github/workflows/integ-test-detect-java-toolchains.yml @@ -0,0 +1,82 @@ +name: Test detect java toolchains + +on: + workflow_call: + inputs: + cache-key-prefix: + type: string + runner-os: + type: string + default: '["ubuntu-latest", "windows-latest", "macos-latest"]' + download-dist: + type: boolean + default: false + +env: + DOWNLOAD_DIST: ${{ inputs.download-dist }} + GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: restore-java-toolchain-${{ inputs.cache-key-prefix }} + GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true + +jobs: + # Test that pre-installed runner JDKs are detected + pre-installed-toolchains: + strategy: + matrix: + os: ${{fromJSON(inputs.runner-os)}} + runs-on: ${{ matrix.os }} + steps: + - name: Checkout sources + uses: actions/checkout@v3 + - name: Download distribution if required + uses: ./.github/actions/download-dist + - name: Setup Gradle + uses: ./ + - name: List detected toolchains + shell: bash + working-directory: .github/workflow-samples/groovy-dsl + run: | + gradle -q javaToolchains > output.txt + cat output.txt + - name: Verify detected toolchains + shell: bash + working-directory: .github/workflow-samples/groovy-dsl + run: | + grep -q 'Eclipse Temurin JDK 1.8' output.txt || (echo "::error::Did not detect preinstalled JDK 1.8" && exit 1) + grep -q 'Eclipse Temurin JDK 11' output.txt || (echo "::error::Did not detect preinstalled JDK 11" && exit 1) + grep -q 'Eclipse Temurin JDK 17' output.txt || (echo "::error::Did not detect preinstalled JDK 17" && exit 1) + + # Test that JDKs provisioned by setup-java are detected + setup-java-installed-toolchain: + strategy: + matrix: + os: ${{fromJSON(inputs.runner-os)}} + runs-on: ${{ matrix.os }} + steps: + - name: Checkout sources + uses: actions/checkout@v3 + - name: Download distribution if required + uses: ./.github/actions/download-dist + - name: Setup Java 20 + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '20' + - name: Setup Java 16 + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '16' + - name: Setup Gradle + uses: ./ + - name: List detected toolchains + shell: bash + working-directory: .github/workflow-samples/groovy-dsl + run: | + gradle -q javaToolchains > output.txt + cat output.txt + - name: Verify detected toolchains + shell: bash + working-directory: .github/workflow-samples/groovy-dsl + run: | + grep -q 'Eclipse Temurin JDK 16' output.txt || (echo "::error::Did not detect setup-java installed JDK 16" && exit 1) + grep -q 'Eclipse Temurin JDK 20' output.txt || (echo "::error::Did not detect setup-java installed JDK 20" && exit 1)