1+ name : clang-tidy Check
2+
3+ on : [push, pull_request]
4+
5+ jobs :
6+ clang-tidy :
7+ name : clang-tidy Check
8+ runs-on : ubuntu-24.04
9+ env :
10+ CC : clang-18
11+ CXX : clang++-18
12+
13+ steps :
14+ - uses : actions/checkout@v4
15+
16+ - name : Install clang-tidy and dependencies
17+ run : |
18+ sudo apt-get update
19+ sudo apt-get install -y clang-tidy-18 libc++-18-dev libc++abi-18-dev ninja-build
20+
21+ - name : Install vcpkg
22+ run : |
23+ git clone https://github.com/microsoft/vcpkg.git ${GITHUB_WORKSPACE}/vcpkg
24+ cd ${GITHUB_WORKSPACE}/vcpkg
25+ ./bootstrap-vcpkg.sh
26+ export CXXFLAGS="-stdlib=libc++"
27+ export LDFLAGS="-stdlib=libc++ -lc++abi"
28+ ./vcpkg install uni-algo nlohmann-json
29+
30+ - name : Configure CMake
31+ run : |
32+ cmake \
33+ -B build \
34+ -G Ninja \
35+ -DCMAKE_CXX_STANDARD=23 \
36+ -DCMAKE_BUILD_TYPE=Debug \
37+ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
38+ -Dskyr_BUILD_TESTS=OFF \
39+ -Dskyr_BUILD_DOCS=OFF \
40+ -Dskyr_BUILD_EXAMPLES=OFF \
41+ -Dskyr_BUILD_WITH_LLVM_LIBCXX=ON \
42+ -DCMAKE_TOOLCHAIN_FILE=${GITHUB_WORKSPACE}/vcpkg/scripts/buildsystems/vcpkg.cmake
43+
44+ - name : Run clang-tidy on headers
45+ run : |
46+ find include -name '*.hpp' -print0 | \
47+ xargs -0 -n1 -P$(nproc) clang-tidy-18 -p build --warnings-as-errors='*'
48+
49+ - name : Run clang-tidy on tests
50+ run : |
51+ find tests -name '*.cpp' -print0 | \
52+ xargs -0 -n1 -P$(nproc) clang-tidy-18 -p build --warnings-as-errors='*'
53+
54+ - name : clang-tidy check passed
55+ if : success()
56+ run : echo "✓ clang-tidy found no issues"
57+
58+ - name : clang-tidy check failed
59+ if : failure()
60+ run : |
61+ echo "✗ clang-tidy found issues. Review the output above for details."
62+ exit 1
0 commit comments