ci(lint): Fix clang_tidy linter check #22
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ci-format-test-lint | |
| on: | |
| push: | |
| branches: ["main"] | |
| pull_request: | |
| branches: ["main"] | |
| jobs: | |
| build-and-test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: "recursive" | |
| - uses: bazel-contrib/setup-bazel@0.18.0 | |
| with: | |
| bazelisk-cache: true | |
| disk-cache: ${{ github.workflow }} | |
| repository-cache: true | |
| - name: Build | |
| run: bazel build //... | |
| - name: Test | |
| run: bazel test //test/... | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: "recursive" | |
| - uses: bazel-contrib/setup-bazel@0.18.0 | |
| with: | |
| bazelisk-cache: true | |
| disk-cache: ${{ github.workflow }} | |
| repository-cache: true | |
| - name: Build all targets | |
| run: bazel build //... | |
| - name: Build compilation database | |
| run: bazel run @hedron_compile_commands//:refresh_all | |
| - name: Debug DB | |
| run: | | |
| echo "Current Dir: $(pwd)" | |
| ls -lh compile_commands.json | |
| # Check if the file with errors is actually in the DB | |
| grep "client_api.cpp" compile_commands.json | head -n 1 || echo "FILE NOT IN DB" | |
| - uses: cpp-linter/cpp-linter-action@v2 | |
| id: linter | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| style: "file" # Use .clang-format config file. | |
| tidy-checks: "" # Use .clang-tidy config file. | |
| database: "compile_commands.json" | |
| version: "21" | |
| extra-args: "--system-headers -fdiagnostics-absolute-paths" | |
| - name: Fail fast?! | |
| if: steps.linter.outputs.checks-failed > 0 | |
| run: exit 1 | |
| - name: ☢️ NUCLEAR DEBUG - Manual Clang-Tidy Run | |
| run: | | |
| echo "=== 1. Checking Database Entry ===" | |
| # Check how the file is referenced in the DB (Absolute vs Relative paths) | |
| grep "openfeature/evaluation_context.h" compile_commands.json | head -n 1 | |
| echo "=== 2. Running Clang-Tidy Manually ===" | |
| # We manually invoke clang-tidy on a file we KNOW has errors. | |
| # We explicitly point to the config and the build folder. | |
| clang-tidy -p . openfeature/evaluation_context.h --config-file=.clang-tidy || echo "Manual Run Failed as Expected" | |
| echo "=== 3. Running Clang-Tidy 16 Manually ===" | |
| /usr/bin/clang-tidy-20 -p . openfeature/evaluation_context.h --config-file=.clang-tidy || echo "Manual Run Failed as Expected" |