Make it possible to actually use (e.g.) -Dsurefire.toolchain.version=21
to set the Java version for tests, and do so in CI. (The property value still _defaults_ to the JDK that you use to run Maven, so passing the flag is not _necessary_.)
#4107
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
permissions: | |
contents: read | |
jobs: | |
test: | |
permissions: | |
actions: write # for styfle/cancel-workflow-action to cancel/stop running workflows | |
contents: read # for actions/checkout to fetch code | |
name: "${{ matrix.root-pom }} on JDK ${{ matrix.java }} on ${{ matrix.os }}" | |
strategy: | |
matrix: | |
os: [ ubuntu-latest ] | |
java: [ 8, 11, 17, 21 ] | |
root-pom: [ 'pom.xml', 'android/pom.xml' ] | |
include: | |
- os: windows-latest | |
java: 21 | |
root-pom: pom.xml | |
runs-on: ${{ matrix.os }} | |
env: | |
ROOT_POM: ${{ matrix.root-pom }} | |
steps: | |
# Cancel any previous runs for the same branch that are still running. | |
- name: 'Cancel previous runs' | |
uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # 0.12.1 | |
with: | |
access_token: ${{ github.token }} | |
- name: 'Check out repository' | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
# When we specify multiple JDKs, the final one becomes the default, which is used to execute Maven itself. | |
# Our Maven configuration then specifies different JDKs to use for some of the steps: | |
# - 11 for building Javadoc | |
# - 23 for running javac | |
# (Note that we also use Java 11 for running our Gradle integration tests. But we run those only when we are already going to run tests under Java 11.) | |
- name: 'Set up JDKs' | |
uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0 | |
with: | |
java-version: | | |
${{ matrix.java }} | |
11 | |
23 | |
distribution: 'zulu' | |
cache: 'maven' | |
- name: 'Install' | |
shell: bash | |
run: ./mvnw -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn install -U -DskipTests=true -f $ROOT_POM | |
- name: 'Test' | |
shell: bash | |
run: ./mvnw -B -P!standard-with-extra-repos verify -U -Dmaven.javadoc.skip=true -Dsurefire.toolchain.version=${{ matrix.java }} -f $ROOT_POM | |
- name: 'Print Surefire reports' | |
# Note: Normally a step won't run if the job has failed, but this causes it to | |
if: ${{ failure() }} | |
shell: bash | |
run: ./util/print_surefire_reports.sh | |
- name: 'Integration Test' | |
if: matrix.java == 11 | |
shell: bash | |
run: util/gradle_integration_tests.sh | |
publish_snapshot: | |
name: 'Publish snapshot' | |
needs: test | |
if: github.event_name == 'push' && github.repository == 'google/guava' | |
runs-on: ubuntu-latest | |
steps: | |
- name: 'Check out repository' | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- name: 'Set up JDK 21' | |
uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0 | |
with: | |
java-version: 21 | |
distribution: 'zulu' | |
server-id: sonatype-nexus-snapshots | |
server-username: CI_DEPLOY_USERNAME | |
server-password: CI_DEPLOY_PASSWORD | |
cache: 'maven' | |
- name: 'Publish' | |
env: | |
CI_DEPLOY_USERNAME: ${{ secrets.CI_DEPLOY_USERNAME }} | |
CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }} | |
run: ./util/deploy_snapshot.sh | |
generate_docs: | |
permissions: | |
contents: write | |
name: 'Generate latest docs' | |
needs: test | |
if: github.event_name == 'push' && github.repository == 'google/guava' | |
runs-on: ubuntu-latest | |
steps: | |
- name: 'Check out repository' | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- name: 'Set up JDK 11' | |
uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0 | |
with: | |
java-version: 11 | |
distribution: 'zulu' | |
cache: 'maven' | |
- name: 'Generate latest docs' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: ./util/update_snapshot_docs.sh |