• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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