supercell-wx/.github/workflows/clang-tidy-review.yml
2024-11-28 06:53:15 -06:00

140 lines
4.5 KiB
YAML

name: clang-tidy-review
on:
pull_request:
branches:
- 'develop'
concurrency:
# Cancel in-progress jobs for the same pull request
group: ${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build:
strategy:
matrix:
include:
- name: linux64_clang-tidy
os: ubuntu-24.04
build_type: Release
env_cc: clang-17
env_cxx: clang++-17
qt_version: 6.8.0
qt_arch_aqt: linux_gcc_64
qt_modules: qtimageformats qtmultimedia qtpositioning qtserialport
qt_tools: ''
conan_arch: x86_64
conan_compiler: clang
conan_compiler_version: 17
conan_compiler_libcxx: --settings compiler.libcxx=libstdc++11
conan_compiler_runtime: ''
conan_package_manager: --conf tools.system.package_manager:mode=install --conf tools.system.package_manager:sudo=True
compiler_packages: clang-17 clang-tidy-17
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
env:
CC: ${{ matrix.env_cc }}
CXX: ${{ matrix.env_cxx }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
path: source
submodules: recursive
- name: Checkout clang-tidy-review Repository
uses: actions/checkout@v4
with:
repository: ZedThree/clang-tidy-review
ref: v0.20.1
path: clang-tidy-review
- name: Install Qt
uses: jurplel/install-qt-action@v3
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 \
${{ matrix.compiler_packages }}
- name: Setup Python Environment
shell: pwsh
run: |
pip install geopandas `
GitPython
pip install --break-system-packages clang-tidy-review/post/clang_tidy_review
- name: Install Conan Packages
shell: pwsh
run: |
pip install "conan<2.0"
conan profile new default --detect
conan install ./source/ `
--remote conancenter `
--build missing `
--settings arch=${{ matrix.conan_arch }} `
--settings build_type=${{ matrix.build_type }} `
--settings compiler="${{ matrix.conan_compiler }}" `
--settings compiler.version=${{ matrix.conan_compiler_version }} `
${{ matrix.conan_compiler_libcxx }} `
${{ matrix.conan_compiler_runtime }} `
${{ matrix.conan_package_manager }}
- name: Autogenerate
shell: pwsh
run: |
mkdir build
cd build
cmake ../source/ `
-G Ninja `
-DCMAKE_BUILD_TYPE="${{ matrix.build_type }}" `
-DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/supercell-wx" `
-DCMAKE_EXPORT_COMPILE_COMMANDS=on
ninja scwx-qt_generate_counties_db `
scwx-qt_generate_versions `
scwx-qt_update_radar_sites `
scwx-qt_autogen
- name: Code Review
id: review
shell: bash
run: |
cd source
review --clang_tidy_binary=clang-tidy-17 \
--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='.clang-tidy' \
--include='*.[ch],*.[ch]xx,*.[ch]pp,*.[ch]++,*.cc,*.hh' \
--exclude='' \
--apt-packages='' \
--cmake-command='' \
--max-comments=25 \
--lgtm-comment-body='' \
--split_workflow=false \
--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.20.1
- name: Status Check
if: steps.review.outputs.total_comments > 0
run: exit 1