mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-29 18:40:06 +00:00
152 lines
5 KiB
YAML
152 lines
5 KiB
YAML
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
|