diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 06e308b88c..0446d5f086 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,41 +47,11 @@ jobs: build-root-directory: gradle-plugins test: - runs-on: ubuntu-latest - strategy: - matrix: - test-java-version: - - 8 - - 11 - - 15 - vm: - - hotspot - - openj9 - fail-fast: false - steps: - - uses: actions/checkout@v3 - - - id: setup-test-java - name: Set up JDK ${{ matrix.test-java-version }}-${{ matrix.vm }} for running tests - uses: actions/setup-java@v2 - with: - distribution: adopt-${{ matrix.vm }} - java-version: ${{ matrix.test-java-version }} - - - name: Set up JDK 11 for running Gradle - uses: actions/setup-java@v2 - with: - distribution: adopt - java-version: 11 - - - name: Test - env: - GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} - GE_CACHE_USERNAME: ${{ secrets.GE_CACHE_USERNAME }} - GE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }} - uses: gradle/gradle-build-action@v2 - with: - arguments: test -PtestJavaVersion=${{ matrix.test-java-version }} -PtestJavaVM=${{ matrix.vm }} -Porg.gradle.java.installations.paths=${{ steps.setup-test-java.outputs.path }} -Porg.gradle.java.installations.auto-download=false + uses: ./.github/workflows/test.yml + secrets: + GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} + GE_CACHE_USERNAME: ${{ secrets.GE_CACHE_USERNAME }} + GE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }} testLatestDeps: # release branches are excluded diff --git a/.github/workflows/nightly-no-cache.yml b/.github/workflows/nightly-no-cache.yml index 5f326b6d92..4f182408ca 100644 --- a/.github/workflows/nightly-no-cache.yml +++ b/.github/workflows/nightly-no-cache.yml @@ -44,39 +44,11 @@ jobs: build-root-directory: gradle-plugins test: - runs-on: ubuntu-latest - strategy: - matrix: - test-java-version: - - 8 - - 11 - - 15 - vm: - - hotspot - - openj9 - fail-fast: false - steps: - - uses: actions/checkout@v3 - - - id: setup-test-java - name: Set up JDK ${{ matrix.test-java-version }}-${{ matrix.vm }} for running tests - uses: actions/setup-java@v2 - with: - distribution: adopt-${{ matrix.vm }} - java-version: ${{ matrix.test-java-version }} - - - name: Set up JDK 11 for running Gradle - uses: actions/setup-java@v2 - with: - distribution: adopt - java-version: 11 - - - name: Test - env: - GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} - uses: gradle/gradle-build-action@v2 - with: - arguments: test -PtestJavaVersion=${{ matrix.test-java-version }} -PtestJavaVM=${{ matrix.vm }} -Porg.gradle.java.installations.paths=${{ steps.setup-test-java.outputs.path }} -Porg.gradle.java.installations.auto-download=false --no-build-cache + uses: ./.github/workflows/test.yml + with: + no-build-cache: true + secrets: + GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} testLatestDeps: uses: ./.github/workflows/test-latest-deps.yml diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index d0de7ae104..a6b1bb35dd 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -46,41 +46,11 @@ jobs: root-build-directory: gradle-plugins test: - runs-on: ubuntu-latest - strategy: - matrix: - test-java-version: - - 8 - - 11 - - 15 - vm: - - hotspot - - openj9 - fail-fast: false - steps: - - uses: actions/checkout@v3 - - - id: setup-test-java - name: Set up JDK ${{ matrix.test-java-version }}-${{ matrix.vm }} for running tests - uses: actions/setup-java@v2 - with: - distribution: adopt-${{ matrix.vm }} - java-version: ${{ matrix.test-java-version }} - - - name: Set up JDK 11 for running Gradle - uses: actions/setup-java@v2 - with: - distribution: adopt - java-version: 11 - - - name: Test - env: - GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} - GE_CACHE_USERNAME: ${{ secrets.GE_CACHE_USERNAME }} - GE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }} - uses: gradle/gradle-build-action@v2 - with: - arguments: test -PtestJavaVersion=${{ matrix.test-java-version }} -PtestJavaVM=${{ matrix.vm }} -Porg.gradle.java.installations.paths=${{ steps.setup-test-java.outputs.path }} -Porg.gradle.java.installations.auto-download=false + uses: ./.github/workflows/test.yml + secrets: + GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} + GE_CACHE_USERNAME: ${{ secrets.GE_CACHE_USERNAME }} + GE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }} testLatestDeps: uses: ./.github/workflows/test-latest-deps.yml diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 1858beaa92..64c22d16bc 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -68,62 +68,9 @@ jobs: build-root-directory: gradle-plugins test: - runs-on: ubuntu-latest - strategy: - matrix: - test-java-version: - - 8 - - 11 - - 15 - vm: - - hotspot - - openj9 - fail-fast: false - steps: - - uses: actions/checkout@v3 - - - id: setup-test-java - name: Set up JDK ${{ matrix.test-java-version }}-${{ matrix.vm }} for running tests - uses: actions/setup-java@v2 - with: - distribution: adopt-${{ matrix.vm }} - java-version: ${{ matrix.test-java-version }} - - - name: Set up JDK 11 for running Gradle - uses: actions/setup-java@v2 - with: - distribution: adopt - java-version: 11 - - - name: Start deadlock detector - run: .github/scripts/deadlock-detector.sh - - - name: Test - uses: gradle/gradle-build-action@v2 - with: - arguments: test -PtestJavaVersion=${{ matrix.test-java-version }} -PtestJavaVM=${{ matrix.vm }} -Porg.gradle.java.installations.paths=${{ steps.setup-test-java.outputs.path }} -Porg.gradle.java.installations.auto-download=false - cache-read-only: true - - - name: Upload deadlock detector artifacts if any - if: always() - uses: actions/upload-artifact@v2 - with: - name: deadlock-detector-test-${{ matrix.test-java-version }} - path: /tmp/deadlock-detector-* - if-no-files-found: ignore - - - name: Upload jvm crash dump files if any - if: always() - uses: actions/upload-artifact@v2 - with: - name: javacore-test-${{ matrix.test-java-version }} - path: | - "**/hs_err_pid*.log" - "**/javacore.*.txt" - "**/Snap.*.trc" - "**/core.*.dmp" - "**/jitdump.*.dmp" - if-no-files-found: ignore + uses: ./.github/workflows/test.yml + with: + cache-read-only: true testLatestDeps: # testLatestDeps is not included in the PR workflow by default diff --git a/.github/workflows/release-gradle-plugins.yml b/.github/workflows/release-gradle-plugins.yml index 1331b87124..1b70a44be8 100644 --- a/.github/workflows/release-gradle-plugins.yml +++ b/.github/workflows/release-gradle-plugins.yml @@ -13,35 +13,7 @@ on: jobs: test: - runs-on: ubuntu-latest - strategy: - matrix: - test-java-version: - - 8 - - 11 - - 15 - steps: - - uses: actions/checkout@v3 - with: - ref: ${{ github.event.inputs.release-branch-name }} - - - id: setup-test-java - name: Set up JDK ${{ matrix.test-java-version }} for running tests - uses: actions/setup-java@v2 - with: - distribution: adopt - java-version: ${{ matrix.test-java-version }} - - - name: Set up JDK 11 for running Gradle - uses: actions/setup-java@v2 - with: - distribution: adopt - java-version: 11 - - - name: Test - uses: gradle/gradle-build-action@v2 - with: - arguments: test -PtestJavaVersion=${{ matrix.test-java-version }} -Porg.gradle.java.installations.paths=${{ steps.setup-test-java.outputs.path }} -Porg.gradle.java.installations.auto-download=false + uses: ./.github/workflows/test.yml # testLatestDeps is intentionally not included in the release workflows # because any time a new library version is released to maven central diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 069042ebfe..4fbe89e08a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,35 +5,7 @@ on: jobs: test: - runs-on: ubuntu-latest - strategy: - matrix: - test-java-version: - - 8 - - 11 - - 15 - steps: - - uses: actions/checkout@v3 - with: - ref: ${{ github.ref_name }} - - - id: setup-test-java - name: Set up JDK ${{ matrix.test-java-version }} for running tests - uses: actions/setup-java@v2 - with: - distribution: adopt - java-version: ${{ matrix.test-java-version }} - - - name: Set up JDK 11 for running Gradle - uses: actions/setup-java@v2 - with: - distribution: adopt - java-version: 11 - - - name: Test - uses: gradle/gradle-build-action@v2 - with: - arguments: test -PtestJavaVersion=${{ matrix.test-java-version }} -Porg.gradle.java.installations.paths=${{ steps.setup-test-java.outputs.path }} -Porg.gradle.java.installations.auto-download=false + uses: ./.github/workflows/test.yml # testLatestDeps is intentionally not included in the release workflows # because any time a new library version is released to maven central diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000000..753c7d4077 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,81 @@ +name: Test + +on: + workflow_call: + inputs: + cache-read-only: + type: boolean + required: false + no-build-cache: + type: boolean + required: false + secrets: + GRADLE_ENTERPRISE_ACCESS_KEY: + required: false + GE_CACHE_USERNAME: + required: false + GE_CACHE_PASSWORD: + required: false + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + test-java-version: + - 8 + - 11 + - 15 + vm: + - hotspot + - openj9 + fail-fast: false + steps: + - uses: actions/checkout@v3 + + - id: setup-test-java + name: Set up JDK ${{ matrix.test-java-version }}-${{ matrix.vm }} for running tests + uses: actions/setup-java@v2 + with: + distribution: adopt-${{ matrix.vm }} + java-version: ${{ matrix.test-java-version }} + + - name: Set up JDK 11 for running Gradle + uses: actions/setup-java@v2 + with: + distribution: adopt + java-version: 11 + + - name: Start deadlock detector + run: .github/scripts/deadlock-detector.sh + + - name: Test + env: + GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} + GE_CACHE_USERNAME: ${{ secrets.GE_CACHE_USERNAME }} + GE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }} + uses: gradle/gradle-build-action@v2 + with: + arguments: test -PtestJavaVersion=${{ matrix.test-java-version }} -PtestJavaVM=${{ matrix.vm }} -Porg.gradle.java.installations.paths=${{ steps.setup-test-java.outputs.path }} -Porg.gradle.java.installations.auto-download=false ${{ inputs.no-build-cache && ' --no-build-cache' || '' }} + cache-read-only: ${{ inputs.cache-read-only }} + + - name: Upload deadlock detector artifacts if any + if: always() + uses: actions/upload-artifact@v2 + with: + name: deadlock-detector-test-${{ matrix.test-java-version }} + path: /tmp/deadlock-detector-* + if-no-files-found: ignore + + - name: Upload jvm crash dump files if any + if: always() + uses: actions/upload-artifact@v2 + with: + name: javacore-test-${{ matrix.test-java-version }} + path: | + "**/hs_err_pid*.log" + "**/javacore.*.txt" + "**/Snap.*.trc" + "**/core.*.dmp" + "**/jitdump.*.dmp" + if-no-files-found: ignore