1name: CI 2 3on: 4 push: 5 branches: 6 - main 7 pull_request: 8 branches: 9 - main 10 11jobs: 12 test: 13 name: "JDK ${{ matrix.java }}" 14 strategy: 15 matrix: 16 java: [ 8, 11, 17 ] 17 runs-on: ubuntu-latest 18 steps: 19 # Cancel any previous runs for the same branch that are still running. 20 - name: 'Cancel previous runs' 21 uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 22 with: 23 access_token: ${{ github.token }} 24 - name: 'Check out repository' 25 uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac 26 - name: 'Cache local Maven repository' 27 uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 28 with: 29 path: ~/.m2/repository 30 key: maven-${{ hashFiles('**/pom.xml') }} 31 restore-keys: | 32 maven- 33 - name: 'Set up JDK ${{ matrix.java }}' 34 uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 35 with: 36 java-version: ${{ matrix.java }} 37 distribution: 'zulu' 38 - name: 'Install' 39 shell: bash 40 run: mvn -B dependency:go-offline test clean -U --quiet --fail-never -DskipTests=true -f build-pom.xml 41 - name: 'Test' 42 shell: bash 43 run: mvn -B verify -U --fail-at-end -Dsource.skip=true -Dmaven.javadoc.skip=true -f build-pom.xml 44 45 publish_snapshot: 46 name: 'Publish snapshot' 47 needs: test 48 if: github.event_name == 'push' && github.repository == 'google/auto' 49 runs-on: ubuntu-latest 50 steps: 51 - name: 'Check out repository' 52 uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac 53 - name: 'Cache local Maven repository' 54 uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 55 with: 56 path: ~/.m2/repository 57 key: maven-${{ hashFiles('**/pom.xml') }} 58 restore-keys: | 59 maven- 60 - name: 'Set up JDK 11' 61 uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 62 with: 63 java-version: 11 64 distribution: 'zulu' 65 server-id: sonatype-nexus-snapshots 66 server-username: CI_DEPLOY_USERNAME 67 server-password: CI_DEPLOY_PASSWORD 68 - name: 'Publish' 69 env: 70 CI_DEPLOY_USERNAME: ${{ secrets.CI_DEPLOY_USERNAME }} 71 CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }} 72 run: ./util/publish-snapshot-on-commit.sh 73 74 generate_docs: 75 name: 'Generate latest docs' 76 needs: test 77 if: github.event_name == 'push' && github.repository == 'google/auto' 78 runs-on: ubuntu-latest 79 steps: 80 - name: 'Check out repository' 81 uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac 82 - name: 'Cache local Maven repository' 83 uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 84 with: 85 path: ~/.m2/repository 86 key: maven-${{ hashFiles('**/pom.xml') }} 87 restore-keys: | 88 maven- 89 - name: 'Set up JDK 11' 90 uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 91 with: 92 java-version: 11 93 distribution: 'zulu' 94 - name: 'Generate latest docs' 95 env: 96 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 97 run: ./util/generate-latest-docs.sh 98