name: Lint and Format on: pull_request: push: branches-ignore: - main jobs: wpiformat: name: "wpiformat" runs-on: ubuntu-latest container: wpilib/roborio-cross-ubuntu:2022-20.04 steps: - uses: actions/checkout@v2 - name: Fetch all history and metadata run: | git fetch --prune --unshallow git checkout -b pr git branch -f main origin/main - name: Set up Python 3.8 uses: actions/setup-python@v2 with: python-version: 3.8 - name: Install clang-format run: | sudo sh -c "echo 'deb http://archive.ubuntu.com/ubuntu/ $(lsb_release -cs)-proposed restricted main multiverse universe' >> /etc/apt/sources.list.d/proposed-repositories.list" sudo apt-get update -q sudo apt-get install -y clang-format-12 - name: Install wpiformat run: pip3 install wpiformat - name: Run run: wpiformat -clang 12 - 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@v2 with: name: wpiformat fixes path: wpiformat-fixes.patch if: ${{ failure() }} tidy: name: "clang-tidy" runs-on: ubuntu-latest container: wpilib/roborio-cross-ubuntu:2022-20.04 steps: - uses: actions/checkout@v2 - name: Fetch all history and metadata run: | git fetch --prune --unshallow git checkout -b pr git branch -f main origin/main - name: Set up Python 3.8 uses: actions/setup-python@v2 with: python-version: 3.8 - name: Install clang-tidy run: | sudo sh -c "echo 'deb http://archive.ubuntu.com/ubuntu/ $(lsb_release -cs)-proposed restricted main multiverse universe' >> /etc/apt/sources.list.d/proposed-repositories.list" sudo apt-get update -q sudo apt-get install -y clang-tidy-12 clang-format-12 - name: Install wpiformat run: pip3 install wpiformat - name: Create compile_commands.json run: ./gradlew generateCompileCommands -Ptoolchain-optional-roboRio - name: List changed files run: wpiformat -list-changed-files - name: Run clang-tidy run: wpiformat -clang 12 -no-format -tidy-changed -compile-commands=build/compile_commands/linuxx86-64 -vv javaformat: name: "Java format" runs-on: ubuntu-latest container: wpilib/ubuntu-base:18.04 steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - 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-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - uses: actions/setup-java@v1 with: java-version: 13 - name: Install libclang-9 run: sudo apt update && sudo apt install -y libclang-cpp9 libclang1-9 - name: Build with Gradle run: ./gradlew docs:zipDocs -PbuildServer -PdocWarningsAsErrors ${{ env.EXTRA_GRADLE_ARGS }}