name: clang-tidy-review on: pull_request: branches: - 'develop' concurrency: # Cancel in-progress jobs for the same pull request group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: build: strategy: matrix: include: - name: linux_clang-tidy_x64 os: ubuntu-24.04 build_type: Release env_cc: clang-18 env_cxx: clang++-18 qt_version: 6.9.2 qt_arch_aqt: linux_gcc_64 qt_modules: qtimageformats qtmultimedia qtpositioning qtserialport qt_tools: '' conan_package_manager: --conf tools.system.package_manager:mode=install --conf tools.system.package_manager:sudo=True conan_profile: scwx-linux_clang-18 compiler_packages: clang-18 clang-tidy-18 clang_tidy_binary: clang-tidy-18 name: ${{ matrix.name }} runs-on: ${{ matrix.os }} env: CC: ${{ matrix.env_cc }} CXX: ${{ matrix.env_cxx }} steps: - name: Checkout uses: actions/checkout@v5 with: path: source submodules: recursive - name: Checkout clang-tidy-review Repository uses: actions/checkout@v5 with: repository: ZedThree/clang-tidy-review ref: v0.20.1 path: clang-tidy-review - name: Install Qt uses: jdpurcell/install-qt-action@v5 env: AQT_CONFIG: ${{ github.workspace }}/source/tools/aqt-settings.ini with: version: ${{ matrix.qt_version }} arch: ${{ matrix.qt_arch_aqt }} modules: ${{ matrix.qt_modules }} tools: ${{ matrix.qt_tools }} - name: Setup Ubuntu Environment if: ${{ startsWith(matrix.os, 'ubuntu') }} shell: bash run: | sudo apt-get install doxygen \ libfuse2 \ ninja-build \ wayland-protocols \ libwayland-dev \ libwayland-egl-backend-dev \ ${{ matrix.compiler_packages }} - name: Setup Python Environment shell: pwsh run: | pip install geopandas ` GitPython ` conan pip install --break-system-packages clang-tidy-review/post/clang_tidy_review - name: Cache Conan Packages uses: actions/cache@v4 with: path: ~/.conan2 key: build-${{ matrix.conan_profile }}-${{ hashFiles('./source/conanfile.py', './source/tools/conan/profiles/*') }} - name: Install Conan Packages shell: pwsh run: | conan config install ` ./source/tools/conan/profiles/${{ matrix.conan_profile }} ` -tf profiles mkdir build cd build mkdir conan conan install ../source/ ` --remote conancenter ` --build missing ` --profile:all ${{ matrix.conan_profile }} ` --settings:all build_type=${{ matrix.build_type }} ` --output-folder ./conan/ ` ${{ matrix.conan_package_manager }} - name: Autogenerate shell: pwsh run: | cd build cmake ../source/ ` -G Ninja ` -DCMAKE_BUILD_TYPE="${{ matrix.build_type }}" ` -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES="${{ github.workspace }}/source/external/cmake-conan/conan_provider.cmake" ` -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/supercell-wx" ` -DCONAN_HOST_PROFILE="${{ matrix.conan_profile }}" ` -DCONAN_BUILD_PROFILE="${{ matrix.conan_profile }}" ` -DCMAKE_EXPORT_COMPILE_COMMANDS=on ninja glad_gl_core_33 ` scwx-qt_generate_counties_db ` scwx-qt_generate_versions ` scwx-qt_autogen - name: Code Review id: review shell: bash run: | cd source review --clang_tidy_binary=${{ matrix.clang_tidy_binary }} \ --token=${{ github.token }} \ --repo='${{ github.repository }}' \ --pr='${{ github.event.pull_request.number }}' \ --build_dir='../build' \ --base_dir='${{ github.workspace }}/source' \ --clang_tidy_checks='' \ --config_file='' \ --include='*.[ch],*.[ch]xx,*.[chi]pp,*.[ch]++,*.cc,*.hh' \ --exclude='' \ --apt-packages='' \ --cmake-command='' \ --max-comments=25 \ --lgtm-comment-body='' \ --split_workflow=true \ --annotations=false \ --parallel=0 rsync -avzh --ignore-missing-args clang-tidy-review-output.json ../ rsync -avzh --ignore-missing-args clang-tidy-review-metadata.json ../ rsync -avzh --ignore-missing-args clang_fixes.json ../ - name: Upload Review uses: ZedThree/clang-tidy-review/upload@v0.21.0 - name: Status Check if: steps.review.outputs.total_comments > 0 run: exit 1