| name: Lint and Format |
| |
| on: |
| pull_request: |
| push: |
| branches-ignore: |
| - main |
| |
| concurrency: |
| group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} |
| cancel-in-progress: true |
| |
| jobs: |
| wpiformat: |
| name: "wpiformat" |
| runs-on: ubuntu-22.04 |
| steps: |
| - uses: actions/checkout@v4 |
| with: |
| fetch-depth: 0 |
| - name: Fetch all history and metadata |
| run: | |
| git checkout -b pr |
| git branch -f main origin/main |
| - name: Set up Python 3.8 |
| uses: actions/setup-python@v4 |
| with: |
| python-version: 3.8 |
| - name: Install wpiformat |
| run: pip3 install wpiformat==2023.36 |
| - name: Run |
| run: wpiformat |
| - name: Check output |
| run: git --no-pager diff --exit-code HEAD |
| - name: Generate diff |
| run: git diff HEAD > wpiformat-fixes.patch |
| if: ${{ failure() }} |
| - uses: actions/upload-artifact@v4 |
| with: |
| name: wpiformat fixes |
| path: wpiformat-fixes.patch |
| if: ${{ failure() }} |
| - name: Write to job summary |
| run: | |
| echo '```diff' >> $GITHUB_STEP_SUMMARY |
| cat wpiformat-fixes.patch >> $GITHUB_STEP_SUMMARY |
| echo '' >> $GITHUB_STEP_SUMMARY |
| echo '```' >> $GITHUB_STEP_SUMMARY |
| if: ${{ failure() }} |
| |
| tidy: |
| name: "clang-tidy" |
| runs-on: ubuntu-22.04 |
| container: wpilib/roborio-cross-ubuntu:2023-22.04 |
| steps: |
| - uses: actions/checkout@v4 |
| with: |
| fetch-depth: 0 |
| - name: Fetch all history and metadata |
| run: | |
| git config --global --add safe.directory /__w/allwpilib/allwpilib |
| git checkout -b pr |
| git branch -f main origin/main |
| - name: Set up Python 3.8 |
| uses: actions/setup-python@v4 |
| with: |
| python-version: 3.8 |
| - name: Install wpiformat |
| run: pip3 install wpiformat |
| - name: Create compile_commands.json |
| run: | |
| ./gradlew generateCompileCommands -Ptoolchain-optional-roboRio |
| ./.github/workflows/fix_compile_commands.py build/TargetedCompileCommands/linuxx86-64release/compile_commands.json |
| ./.github/workflows/fix_compile_commands.py build/TargetedCompileCommands/linuxx86-64debug/compile_commands.json |
| - name: List changed files |
| run: wpiformat -list-changed-files |
| - name: Run clang-tidy release |
| run: wpiformat -no-format -tidy-changed -compile-commands=build/TargetedCompileCommands/linuxx86-64release -vv |
| - name: Run clang-tidy debug |
| run: wpiformat -no-format -tidy-changed -compile-commands=build/TargetedCompileCommands/linuxx86-64debug -vv |
| javaformat: |
| name: "Java format" |
| runs-on: ubuntu-22.04 |
| container: wpilib/ubuntu-base:22.04 |
| steps: |
| - uses: actions/checkout@v4 |
| with: |
| fetch-depth: 0 |
| - name: Fetch all history and metadata |
| run: | |
| git config --global --add safe.directory /__w/allwpilib/allwpilib |
| git checkout -b pr |
| git branch -f main origin/main |
| - name: Run Java format |
| run: ./gradlew javaFormat spotbugsMain spotbugsTest spotbugsDev |
| - name: Check output |
| run: git --no-pager diff --exit-code HEAD |
| - name: Generate diff |
| run: git diff HEAD > javaformat-fixes.patch |
| if: ${{ failure() }} |
| documentation: |
| name: "Documentation" |
| runs-on: ubuntu-22.04 |
| steps: |
| - uses: actions/checkout@v4 |
| with: |
| fetch-depth: 0 |
| - uses: actions/setup-java@v3 |
| with: |
| distribution: 'zulu' |
| java-version: 13 |
| - name: Build with Gradle |
| run: ./gradlew docs:zipDocs -PbuildServer -PdocWarningsAsErrors ${{ env.EXTRA_GRADLE_ARGS }} |