foxygit / doom Log in
commits tags

/.github/workflows/cpp-linter.yml · 1.63 KB

raw
# Workflow syntax:
# https://help.github.com/en/articles/workflow-syntax-for-github-actions
name: cpp-linter

on:
  pull_request:
    types: [opened, reopened, synchronize]
  push:
    branches:
      - master

jobs:
  cpp-linter:
    strategy:
      matrix:
        compiler: [clang]
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Install dependencies
        run: sudo apt-get update && sudo apt-get install libfluidsynth-dev libpng-dev libsamplerate0-dev libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev ninja-build
      - name: Run cmake to generate compilation database
        run: cmake -S . -B . -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=1
      - uses: cpp-linter/cpp-linter-action@v2
        id: linter
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          style: file
          lines-changed-only: true
          version: 16
          tidy-checks: >-
            boost-*
            ,bugprone-*
            ,performance-*
            ,readability-*
            ,portability-*
            ,modernize-*
            ,clang-analyzer-*
            ,cppcoreguidelines-*
            ,-cppcoreguidelines-avoid-magic-numbers
            ,-cppcoreguidelines-init-variables
            ,-readability-identifier-length
            ,-readability-isolate-declaration
            ,-readability-magic-numbers

      - name: Fail fast?!
        if: steps.linter.outputs.checks-failed > 0
        run: |
          echo "Some files failed the linting checks! Fail fast disabled until false positive issue is fixed"

      - name: Check no extern used in .c files
        run: |
          ./check-extern.sh