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@v3 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 }}