# Copyright 2021 Collate # 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: Java Checkstyle on: pull_request_target: branches: - main - '0.[0-9]+.[0-9]+' permissions: contents: read concurrency: group: java-checkstyle-${{ github.head_ref }} cancel-in-progress: true jobs: java-checkstyle: runs-on: ubuntu-latest permissions: pull-requests: write steps: - name: Wait for the labeler uses: lewagon/wait-on-check-action@0179dfc359f90a703c41240506f998ee1603f9ea #v1.0.0 if: ${{ github.event_name == 'pull_request_target' }} with: ref: ${{ github.event.pull_request.head.sha }} check-name: Team Label repo-token: ${{ secrets.GITHUB_TOKEN }} wait-interval: 30 - name: Verify PR labels uses: jesusvasquez333/verify-pr-label-action@v1.4.0 if: ${{ github.event_name == 'pull_request_target' }} with: github-token: '${{ secrets.GITHUB_TOKEN }}' valid-labels: 'safe to test' pull-request-number: '${{ github.event.pull_request.number }}' disable-reviews: true # To not auto approve changes - name: Checkout uses: actions/checkout@v3 with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up JDK 11 uses: actions/setup-java@v3 with: java-version: '11' distribution: 'adopt' - name: Run checkstyle run: mvn googleformatter:format@reformat-sources - name: Save checkstyle outcome id: git continue-on-error: true run: | git diff-files --quiet - name: Create a comment in the PR with the instructions if: steps.git.outcome != 'success' uses: peter-evans/create-or-update-comment@v1 with: issue-number: ${{ github.event.pull_request.number }} body: | **The Java checkstyle failed.** Please run `mvn googleformatter:format@reformat-sources` in the root of your repository and commit the changes to this PR. You can also use [pre-commit](https://pre-commit.com/) to automate the Java code formatting. You can install the pre-commit hooks with `make install_test precommit_install`. - name: Java checkstyle failed, check the comment in the PR if: steps.git.outcome != 'success' run: | exit 1