diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9aa528822..398c55d74 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,11 +9,8 @@ on: - master jobs: - test: - name: "JDK ${{ matrix.java }}" - strategy: - matrix: - java: [ 8, 11 ] + build: + name: 'Build with JDK 26' runs-on: ubuntu-latest steps: # Cancel any previous runs for the same branch that are still running. @@ -23,34 +20,71 @@ jobs: access_token: ${{ github.token }} - name: 'Check out repository' uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - - name: 'Set up JDK ${{ matrix.java }}' + - name: 'Set up JDK 26 for compilation' uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 with: - java-version: ${{ matrix.java }} + java-version: 26 distribution: 'temurin' cache: 'maven' - name: 'Install' shell: bash run: mvn -B -P!standard-with-extra-repos install -U -DskipTests=true - - name: 'Test' - shell: bash - run: mvn -B -P!standard-with-extra-repos verify -U -Dmaven.javadoc.skip=true - name: 'Javadoc Test Run' shell: bash run: mvn -B -P!standard-with-extra-repos javadoc:aggregate -U + - name: 'Upload build artifacts' + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a + with: + name: truth-jars + path: | + **/target/*.jar + !**/target/*-sources.jar + !**/target/*-javadoc.jar + + test: + name: "Test with JDK ${{ matrix.java }}" + needs: build + strategy: + matrix: + java: [ 8, 17, 25 ] + runs-on: ubuntu-latest + steps: + - name: 'Check out repository' + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd + - name: 'Set up JDK ${{ matrix.java }} for testing' + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 + with: + java-version: ${{ matrix.java }} + distribution: 'temurin' + cache: 'maven' + - name: 'Download build artifacts' + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c + with: + name: truth-jars + - name: 'Unpack artifacts' + shell: bash + run: | + for f in $(find . -name "*.jar" ! -name "*-gwt.jar"); do + dest="${f%/target/*}/target/classes" + mkdir -p "$dest" + unzip -o "$f" -d "$dest" + done + - name: 'Test' + shell: bash + run: mvn -B -P!standard-with-extra-repos verify -U -Dmaven.javadoc.skip=true -Dmaven.main.skip=true publish_snapshot: name: 'Publish snapshot' - needs: test + needs: [build, test] if: github.event_name == 'push' && github.repository == 'google/truth' runs-on: ubuntu-latest steps: - name: 'Check out repository' uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - - name: 'Set up JDK 11' + - name: 'Set up JDK 26' uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 with: - java-version: 11 + java-version: 26 distribution: 'temurin' cache: 'maven' server-id: central @@ -66,16 +100,16 @@ jobs: permissions: contents: write name: 'Generate latest docs' - needs: test + needs: [build, test] if: github.event_name == 'push' && github.repository == 'google/truth' runs-on: ubuntu-latest steps: - name: 'Check out repository' uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - - name: 'Set up JDK 11' + - name: 'Set up JDK 26' uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 with: - java-version: 11 + java-version: 26 distribution: 'temurin' cache: 'maven' - name: 'Generate latest docs'