# 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: # Trigger analysis when pushing in master or pull requests, and when creating # a pull request. push: branches: - main - "0.[0-9]+.[0-9]+" pull_request_target: types: [opened, synchronize, reopened, labeled] 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: Free Disk Space (Ubuntu) uses: jlumbroso/free-disk-space@main with: tool-cache: false android: true dotnet: true haskell: true large-packages: false swap-storage: true docker-images: false - name: Wait for the labeler uses: lewagon/wait-on-check-action@v1.3.4 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: 90 - 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@v4 with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up JDK 21 uses: actions/setup-java@v4 with: java-version: '21' distribution: 'temurin' - name: Run checkstyle run: mvn spotless:apply - 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 spotless:apply` 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