Skip to content

Commit

Permalink
Merge pull request #304 from dpaulat/feature/clang-checks
Browse files Browse the repository at this point in the history
Clang Checks
  • Loading branch information
dpaulat authored Nov 28, 2024
2 parents dbfacdf + 1fd696d commit f2e1db4
Show file tree
Hide file tree
Showing 6 changed files with 195 additions and 2 deletions.
12 changes: 12 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Checks:
- '-*'
- 'bugprone-*'
- 'clang-analyzer-*'
- 'cppcoreguidelines-*'
- 'misc-*'
- 'modernize-*'
- 'performance-*'
- '-misc-include-cleaner'
- '-misc-non-private-member-variables-in-classes'
- '-modernize-use-trailing-return-type'
FormatStyle: 'file'
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:

concurrency:
# Cancel in-progress jobs for the same pull request
group: ${{ github.head_ref || github.run_id }}
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
Expand Down
40 changes: 40 additions & 0 deletions .github/workflows/clang-format-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: clang-format-check

on:
workflow_dispatch:
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:
format:
runs-on: ubuntu-24.04
steps:

- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: false

- name: Update References
shell: bash
run: |
git fetch origin develop
- name: Setup Ubuntu Environment
shell: bash
run: |
sudo apt-get install clang-format-17
- name: Check Formatting
shell: bash
run: |
MERGE_BASE=$(git merge-base origin/develop ${{ github.event.pull_request.head.sha || github.ref }})
echo "Comparing against ${MERGE_BASE}"
git clang-format-17 --diff --style=file -v ${MERGE_BASE}
140 changes: 140 additions & 0 deletions .github/workflows/clang-tidy-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
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: 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/[email protected]

- name: Status Check
if: steps.review.outputs.total_comments > 0
run: exit 1
1 change: 1 addition & 0 deletions scwx-qt/scwx-qt.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -510,6 +510,7 @@ source_group("I18N Files" FILES ${TS_FILES})

add_library(scwx-qt OBJECT ${PROJECT_SOURCES})
set_property(TARGET scwx-qt PROPERTY AUTOMOC ON)
set_property(TARGET scwx-qt PROPERTY AUTOGEN_ORIGIN_DEPENDS OFF)

add_custom_command(OUTPUT ${COUNTIES_SQLITE_DB}
COMMAND ${Python_EXECUTABLE}
Expand Down
2 changes: 1 addition & 1 deletion scwx-qt/source/scwx/qt/manager/log_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#include <ranges>
#include <unordered_map>

#include <boost/process/environment.hpp>
#include <boost/process/v1/environment.hpp>
#include <fmt/format.h>
#include <spdlog/spdlog.h>
#include <QStandardPaths>
Expand Down

0 comments on commit f2e1db4

Please sign in to comment.