Merge remote-tracking branch 'upstream/main' into move-build-to-reusable-workflow

This commit is contained in:
Trask Stalnaker 2022-03-02 20:11:11 -08:00
commit 83dd5279cd
12 changed files with 237 additions and 493 deletions

View File

@ -5,6 +5,9 @@
},
{
"pattern": "^https://mvnrepository\\.com/artifact/io\\.opentelemetry$"
},
{
"pattern": "^http://code\\.google\\.com/p/concurrentlinkedhashmap$"
}
],
"retryOn429": true

View File

@ -16,65 +16,22 @@ jobs:
GE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }}
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:
runs-on: ubuntu-latest
# release branches are excluded
# because any time a new library version is released to maven central it can fail
# which requires unnecessary release branch maintenance, especially for patches
if: ${{ !startsWith(github.ref_name, 'v') }}
steps:
- uses: actions/checkout@v3
- 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 -PtestLatestDeps=true
uses: ./.github/workflows/test-latest-deps.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 }}
smoke-test:
uses: ./.github/workflows/smoke-test.yml
@ -91,39 +48,7 @@ jobs:
uses: ./.github/workflows/muzzle.yml
examples:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11 for running Gradle
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- name: Set up gradle cache
uses: gradle/gradle-build-action@v2
- name: Local publish of artifacts
# javadoc task fails sporadically fetching https://docs.oracle.com/javase/8/docs/api/
run: ./gradlew publishToMavenLocal -x javadoc
- name: Local publish of gradle plugins
# javadoc task fails sporadically fetching https://docs.oracle.com/javase/8/docs/api/
run: ./gradlew publishToMavenLocal -x javadoc
working-directory: gradle-plugins
- name: Build distro
run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts
working-directory: examples/distro
- name: Build extension
run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts
working-directory: examples/extension
- name: Run muzzle check against extension
run: ./gradlew muzzle --init-script ../../.github/scripts/local.init.gradle.kts
working-directory: examples/extension
uses: ./.github/workflows/examples.yml
markdown-link-check:
runs-on: ubuntu-latest

49
.github/workflows/examples.yml vendored Normal file
View File

@ -0,0 +1,49 @@
name: Examples
on:
workflow_call:
inputs:
cache-read-only:
type: boolean
required: false
no-build-cache:
type: boolean
required: false
jobs:
examples:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11 for running Gradle
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- name: Set up gradle cache
uses: gradle/gradle-build-action@v2
with:
cache-read-only: ${{ inputs.cache-read-only }}
- name: Local publish of artifacts
# javadoc task fails sporadically fetching https://docs.oracle.com/javase/8/docs/api/
run: ./gradlew publishToMavenLocal -x javadoc
- name: Local publish of gradle plugins
# javadoc task fails sporadically fetching https://docs.oracle.com/javase/8/docs/api/
run: ./gradlew publishToMavenLocal -x javadoc
working-directory: gradle-plugins
- name: Build distro
run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts${{ inputs.no-build-cache && ' --no-build-cache' || '' }}
working-directory: examples/distro
- name: Build extension
run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts${{ inputs.no-build-cache && ' --no-build-cache' || '' }}
working-directory: examples/extension
- name: Run muzzle check against extension
run: ./gradlew muzzle --init-script ../../.github/scripts/local.init.gradle.kts
working-directory: examples/extension

View File

@ -51,5 +51,7 @@ jobs:
with:
# timing out has not been a problem, these jobs typically finish in 2-3 minutes
timeout_minutes: 15
max_attempts: 3
# give maven central a minute to hopefully recover
retry_wait_seconds: 60
max_attempts: 5
command: ./gradlew ${{ matrix.module }}:muzzle

View File

@ -15,57 +15,18 @@ jobs:
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
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:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- 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 -PtestLatestDeps=true --no-build-cache
uses: ./.github/workflows/test-latest-deps.yml
with:
no-build-cache: true
secrets:
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
smoke-test:
uses: ./.github/workflows/smoke-test.yml
@ -78,39 +39,9 @@ jobs:
# it doesn't use gradle cache anyways and so is already covered by the normal nightly build
examples:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11 for running Gradle
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- name: Set up gradle cache
uses: gradle/gradle-build-action@v2
- name: Local publish of artifacts
# javadoc task fails sporadically fetching https://docs.oracle.com/javase/8/docs/api/
run: ./gradlew publishToMavenLocal -x javadoc
- name: Local publish of gradle plugins
# javadoc task fails sporadically fetching https://docs.oracle.com/javase/8/docs/api/
run: ./gradlew publishToMavenLocal -x javadoc
working-directory: gradle-plugins
- name: Build distro
run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts --no-build-cache
working-directory: examples/distro
- name: Build extension
run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts --no-build-cache
working-directory: examples/extension
- name: Run muzzle check against extension
run: ./gradlew muzzle --init-script ../../.github/scripts/local.init.gradle.kts
working-directory: examples/extension
uses: ./.github/workflows/examples.yml
with:
no-build-cache: true
# markdown-link-check is intentionally not included in the nightly-no-cache build because
# it doesn't use gradle cache anyways and so is already covered by the normal nightly build

View File

@ -15,61 +15,18 @@ jobs:
GE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }}
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:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- 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 -PtestLatestDeps=true
uses: ./.github/workflows/test-latest-deps.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 }}
smoke-test:
uses: ./.github/workflows/smoke-test.yml
@ -82,39 +39,7 @@ jobs:
uses: ./.github/workflows/muzzle.yml
examples:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11 for running Gradle
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- name: Set up gradle cache
uses: gradle/gradle-build-action@v2
- name: Local publish of artifacts
# javadoc task fails sporadically fetching https://docs.oracle.com/javase/8/docs/api/
run: ./gradlew publishToMavenLocal -x javadoc
- name: Local publish of gradle plugins
# javadoc task fails sporadically fetching https://docs.oracle.com/javase/8/docs/api/
run: ./gradlew publishToMavenLocal -x javadoc
working-directory: gradle-plugins
- name: Build distro
run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts
working-directory: examples/distro
- name: Build extension
run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts
working-directory: examples/extension
- name: Run muzzle check against extension
run: ./gradlew muzzle --init-script ../../.github/scripts/local.init.gradle.kts
working-directory: examples/extension
uses: ./.github/workflows/examples.yml
markdown-link-check:
runs-on: ubuntu-latest

View File

@ -13,62 +13,9 @@ jobs:
cache-read-only: true
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
@ -84,30 +31,17 @@ jobs:
#
# and the name is updated when the steps below are skipped which makes what's happening clearer
# in the GitHub UI
name: testLatestDeps${{ !contains(github.event.pull_request.labels.*.name, 'test latest deps') && ' (skipped)' || '' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11 for running Gradle
if: ${{ contains(github.event.pull_request.labels.*.name, 'test latest deps') }}
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- name: Test
if: ${{ contains(github.event.pull_request.labels.*.name, 'test latest deps') }}
uses: gradle/gradle-build-action@v2
with:
arguments: test -PtestLatestDeps=true
cache-read-only: true
uses: ./.github/workflows/test-latest-deps.yml
with:
skip: ${{ !contains(github.event.pull_request.labels.*.name, 'test latest deps') }}
cache-read-only: true
smoke-test:
uses: ./.github/workflows/smoke-test.yml
with:
# windows smoke tests are slower, and it's rare for only the windows smoke tests to break
skip-windows: true
cache-read-only: true
muzzle:
# release branches are excluded
@ -117,41 +51,9 @@ jobs:
uses: ./.github/workflows/muzzle.yml
examples:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11 for running Gradle
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- name: Set up gradle cache
uses: gradle/gradle-build-action@v2
with:
cache-read-only: true
- name: Local publish of artifacts
# javadoc task fails sporadically fetching https://docs.oracle.com/javase/8/docs/api/
run: ./gradlew publishToMavenLocal -x javadoc
- name: Local publish of gradle plugins
# javadoc task fails sporadically fetching https://docs.oracle.com/javase/8/docs/api/
run: ./gradlew publishToMavenLocal -x javadoc
working-directory: gradle-plugins
- name: Build distro
run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts
working-directory: examples/distro
- name: Build extension
run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts
working-directory: examples/extension
- name: Run muzzle check against extension
run: ./gradlew muzzle --init-script ../../.github/scripts/local.init.gradle.kts
working-directory: examples/extension
uses: ./.github/workflows/examples.yml
with:
cache-read-only: true
# markdown-link-check is not included in the PR build because links to external urls can break at
# any time, which can be confusing for contributors

View File

@ -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
@ -56,41 +28,7 @@ jobs:
# and this is not a reason to hold up the release
examples:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.inputs.release-branch-name }}
- name: Set up JDK 11 for running Gradle
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- name: Set up gradle cache
uses: gradle/gradle-build-action@v2
- name: Local publish of artifacts
# javadoc task fails sporadically fetching https://docs.oracle.com/javase/8/docs/api/
run: ./gradlew publishToMavenLocal -x javadoc
- name: Local publish of gradle plugins
# javadoc task fails sporadically fetching https://docs.oracle.com/javase/8/docs/api/
run: ./gradlew publishToMavenLocal -x javadoc
working-directory: gradle-plugins
- name: Build distro
run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts
working-directory: examples/distro
- name: Build extension
run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts
working-directory: examples/extension
- name: Run muzzle check against extension
run: ./gradlew muzzle --init-script ../../.github/scripts/local.init.gradle.kts
working-directory: examples/extension
uses: ./.github/workflows/examples.yml
release:
needs: [ test, smoke-test, examples ]

View File

@ -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
@ -48,41 +20,7 @@ jobs:
# and this is not a reason to hold up the release
examples:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.ref_name }}
- name: Set up JDK 11 for running Gradle
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- name: Set up gradle cache
uses: gradle/gradle-build-action@v2
- name: Local publish of artifacts
# javadoc task fails sporadically fetching https://docs.oracle.com/javase/8/docs/api/
run: ./gradlew publishToMavenLocal -x javadoc
- name: Local publish of gradle plugins
# javadoc task fails sporadically fetching https://docs.oracle.com/javase/8/docs/api/
run: ./gradlew publishToMavenLocal -x javadoc
working-directory: gradle-plugins
- name: Build distro
run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts
working-directory: examples/distro
- name: Build extension
run: ./gradlew build --init-script ../../.github/scripts/local.init.gradle.kts
working-directory: examples/extension
- name: Run muzzle check against extension
run: ./gradlew muzzle --init-script ../../.github/scripts/local.init.gradle.kts
working-directory: examples/extension
uses: ./.github/workflows/examples.yml
release:
needs: [ test, smoke-test, examples ]

View File

@ -63,4 +63,5 @@ jobs:
uses: gradle/gradle-build-action@v2
with:
arguments: ":smoke-tests:test -PsmokeTestSuite=${{ matrix.smoke-test-suite }}${{ inputs.no-build-cache && ' --no-build-cache' || '' }}"
cache-read-only: ${{ inputs.cache-read-only }}
# only push cache for one matrix option per OS since github action cache space is limited
cache-read-only: ${{ inputs.cache-read-only || matrix.smoke-test-suite != 'tomcat' }}

48
.github/workflows/test-latest-deps.yml vendored Normal file
View File

@ -0,0 +1,48 @@
name: Test latest deps
on:
workflow_call:
inputs:
skip:
type: boolean
required: false
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:
testLatestDeps:
# the condition is on the steps below instead of here on the job, because skipping the job
# causes the job to show up as canceled in the GitHub UI which prevents the build section from
# collapsing when everything (else) is green
#
# and the name is updated when the steps below are skipped which makes what's happening clearer
# in the GitHub UI
name: testLatestDeps${{ inputs.skip && ' (skipped)' || '' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11 for running Gradle
if: ${{ inputs.skipped }}
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- name: Test
if: ${{ inputs.skipped }}
uses: gradle/gradle-build-action@v2
with:
arguments: test -PtestLatestDeps=true ${{ inputs.no-build-cache && ' --no-build-cache' || '' }}
cache-read-only: ${{ inputs.cache-read-only }}

82
.github/workflows/test.yml vendored Normal file
View File

@ -0,0 +1,82 @@
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' || '' }}
# only push cache for one matrix option since github action cache space is limited
cache-read-only: ${{ inputs.cache-read-only || matrix.test-java-version != 11 || matrix.vm != 'hotspot' }}
- 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