aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r--.github/workflows/ci.yml89
1 files changed, 89 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..016b8e7
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,89 @@
+# Copyright 2020 The Error Prone Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name: CI
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+
+jobs:
+ test:
+ name: "JDK ${{ matrix.java }} on ${{ matrix.os }}"
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [ ubuntu-latest ]
+ java: [ 17, 11 ]
+ experimental: [ false ]
+ include:
+ # Only test on macos and windows with a single recent JDK to avoid a
+ # combinatorial explosion of test configurations.
+ - os: macos-latest
+ java: 17
+ experimental: false
+ - os: windows-latest
+ java: 17
+ experimental: false
+ - os: ubuntu-latest
+ java: 18-ea
+ experimental: true
+ runs-on: ${{ matrix.os }}
+ continue-on-error: ${{ matrix.experimental }}
+ steps:
+ - name: Cancel previous
+ uses: styfle/cancel-workflow-action@0.9.1
+ with:
+ access_token: ${{ github.token }}
+ - name: 'Check out repository'
+ uses: actions/checkout@v2
+ - name: 'Set up JDK ${{ matrix.java }}'
+ uses: actions/setup-java@v2
+ with:
+ java-version: ${{ matrix.java }}
+ distribution: 'zulu'
+ cache: 'maven'
+ - name: 'Install'
+ shell: bash
+ run: mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
+ - name: 'Test'
+ shell: bash
+ run: mvn test -B
+
+ publish_snapshot:
+ name: 'Publish snapshot'
+ needs: test
+ if: github.event_name == 'push' && github.repository == 'google/google-java-format' && github.ref == 'refs/heads/master'
+ runs-on: ubuntu-latest
+ steps:
+ - name: 'Check out repository'
+ uses: actions/checkout@v2
+ - name: 'Set up JDK 17'
+ uses: actions/setup-java@v2
+ with:
+ java-version: 17
+ distribution: 'zulu'
+ cache: 'maven'
+ server-id: sonatype-nexus-snapshots
+ server-username: CI_DEPLOY_USERNAME
+ server-password: CI_DEPLOY_PASSWORD
+ - name: 'Publish'
+ env:
+ CI_DEPLOY_USERNAME: ${{ secrets.CI_DEPLOY_USERNAME }}
+ CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }}
+ run: mvn -pl '!eclipse_plugin' source:jar deploy -B -DskipTests=true -Dinvoker.skip=true -Dmaven.javadoc.skip=true