ci: Test clang-tidy plugin
The purpose of these tests is to ensure that anyone attempting to compile the clang-tidy plugin on the tested distributions will be able to and that the resulting plugin will work. Clang-tidy plugins were only introduced with Clang 16, so we can't test with any earlier versions than that. Signed-off-by: Mike Crowe <mac@mcrowe.com>
This commit is contained in:
parent
4eda97d6bb
commit
34f2cf7a45
60
.github/workflows/clang-tidy-plugin.yml
vendored
Normal file
60
.github/workflows/clang-tidy-plugin.yml
vendored
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
name: Ubuntu
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- develop
|
||||||
|
- master
|
||||||
|
- release/*
|
||||||
|
pull_request:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
ci_test_clang_tidy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
# clang-tidy plugins require at least Clang 16. This means that
|
||||||
|
# anything older than Ubuntu 24.04 and Debian 12 can't work at all.
|
||||||
|
include:
|
||||||
|
- distro: ubuntu:24.04
|
||||||
|
clang_version: 16
|
||||||
|
- distro: ubuntu:24.04
|
||||||
|
clang_version: 17
|
||||||
|
- distro: ubuntu:24.04
|
||||||
|
clang_version: 18
|
||||||
|
- distro: debian:12
|
||||||
|
clang_version: 16
|
||||||
|
- distro: debian:12
|
||||||
|
clang_version: 19
|
||||||
|
- distro: debian:trixie
|
||||||
|
clang_version: 17
|
||||||
|
- distro: debian:trixie
|
||||||
|
clang_version: 18
|
||||||
|
- distro: debian:trixie
|
||||||
|
clang_version: 19
|
||||||
|
container: ${{ matrix.distro }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
- name: List files
|
||||||
|
run: ls -l
|
||||||
|
- name: Install packages
|
||||||
|
run: >-
|
||||||
|
echo distro=${{matrix.distro}} &&
|
||||||
|
echo clang_version=${{matrix.clang_version}} &&
|
||||||
|
apt-get update &&
|
||||||
|
apt-get install -y
|
||||||
|
build-essential
|
||||||
|
clang-${{ matrix.clang_version }}
|
||||||
|
clang-tidy-${{ matrix.clang_version }}
|
||||||
|
libclang-${{matrix.clang_version}}-dev
|
||||||
|
cmake ninja-build
|
||||||
|
- name: Run CMake
|
||||||
|
run: cmake -S . -B build -G Ninja -DJSON_CI=On -DJSON_ClangTidyPlugin=ON
|
||||||
|
- name: Build clang-tidy plugin
|
||||||
|
run: cmake --build build --target clang_tidy_plugin/libNlohmannJsonClangTidyPlugin.so
|
||||||
|
- name: Test clang-tidy plugin
|
||||||
|
run: cd build && ctest -V --output-on-failure -R modernize-nlohmann-json-explicit-conversions-check
|
||||||
Loading…
Reference in New Issue
Block a user