diff --git a/.github/clang-tidy.yml b/.github/clang-tidy.yml new file mode 100644 index 000000000000..612bd0ee8de8 --- /dev/null +++ b/.github/clang-tidy.yml @@ -0,0 +1 @@ +Checks: '-*' diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 000000000000..6d6a4afea8a1 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,104 @@ +name: Additional lint + +on: + push: + branches: + - trying + - staging + pull_request: + branches: [ master ] + merge_group: + +jobs: + compilation-database: + env: + # Force locale, in particular for reproducible results re '.github/log_expected_warnings' (see below). + LC_ALL: C.UTF-8 + + runs-on: ubuntu-24.10 + + steps: + - uses: actions/checkout@v4 + + - name: Install Deps + run: | + sudo apt-get update; + sudo apt-get install -y \ + automake \ + autoconf \ + libtool \ + autogen \ + bison \ + flex \ + libgmp3-dev \ + libmpfr-dev \ + libmpc-dev \ + build-essential \ + gcc-multilib \ + g++-multilib \ + bear \ + dejagnu; + # install Rust directly using rustup + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=1.72.0; + + - name: Make Source Read-Only + run: chmod -R a-w ./* + + - name: Configure + run: | + mkdir -p gccrs-build; + cd gccrs-build; + ../configure \ + --enable-languages=rust \ + --disable-bootstrap \ + --enable-multilib + + - name: Build + shell: bash + run: | + cd gccrs-build; \ + # Add cargo to our path quickly + . "$HOME/.cargo/env"; + bear -- make -Otarget -j $(nproc) 2>&1 | tee log + - uses: actions/upload-artifact@v4 + with: + name: compilation-database + path: gccrs-build/compile_commands.json + + + cland-tidy: + env: + # Force locale, in particular for reproducible results re '.github/log_expected_warnings' (see below). + LC_ALL: C.UTF-8 + runs-on: ubuntu-24.10 + steps: + - name: Install Deps + run: | + sudo apt-get update; + sudo apt-get install -y \ + clang-tools + + - uses: actions/download-artifact@v4 + with: + name: compilation-database + path: db + - run: | + run-clang-tidy -p db/compile-commands.json -style contrib/clang-format gcc/rust/* + include-what-you-use: + env: + # Force locale, in particular for reproducible results re '.github/log_expected_warnings' (see below). + LC_ALL: C.UTF-8 + runs-on: ubuntu-24.10 + steps: + - name: Install Deps + run: | + sudo apt-get update; + sudo apt-get install -y \ + iwyu + + - uses: actions/download-artifact@v4 + with: + name: compilation-database + path: db + - run: | + iwyu_tool.py -p db/compile-commands.json gcc/rust/