From 7c0d77b27d171eb9a4dbce43dfa0b96d74fc3f62 Mon Sep 17 00:00:00 2001 From: Ryohei Sasaki Date: Fri, 3 Apr 2026 16:39:14 +0900 Subject: [PATCH 1/3] Add CI lint workflow for clang-format check --- .github/workflows/lint.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/lint.yml diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 00000000..8ffcbd7c --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,22 @@ +name: lint + +on: + pull_request: + +jobs: + clang-format: + runs-on: ubuntu-22.04 + + steps: + - uses: actions/checkout@v4 + + - name: Install clang-format + run: | + sudo apt-get update + sudo apt-get install -y clang-format-17 + + - name: Check clang-format + run: | + find . \( -name "*.cpp" -o -name "*.hpp" -o -name "*.h" \) \ + ! -path "./build/*" ! -path "./install/*" \ + | xargs clang-format-17 --dry-run --Werror From c3a9deb457fdc73f9ef7b1c194ed7175a4d853e3 Mon Sep 17 00:00:00 2001 From: Ryohei Sasaki Date: Mon, 6 Apr 2026 15:08:48 +0900 Subject: [PATCH 2/3] fix(ci): use clang-format-14 available on ubuntu-22.04 clang-format-17 is not in the standard Ubuntu 22.04 apt repos, causing the install step to fail. --- .github/workflows/lint.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 8ffcbd7c..3bade63b 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -13,10 +13,10 @@ jobs: - name: Install clang-format run: | sudo apt-get update - sudo apt-get install -y clang-format-17 + sudo apt-get install -y clang-format-14 - name: Check clang-format run: | find . \( -name "*.cpp" -o -name "*.hpp" -o -name "*.h" \) \ ! -path "./build/*" ! -path "./install/*" \ - | xargs clang-format-17 --dry-run --Werror + | xargs clang-format-14 --dry-run --Werror From 770bb7330693181470a4737bef9fda358430daba Mon Sep 17 00:00:00 2001 From: Ryohei Sasaki Date: Mon, 6 Apr 2026 15:21:59 +0900 Subject: [PATCH 3/3] fix(ci): skip clang-format check when .clang-format is absent --- .github/workflows/lint.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 3bade63b..6c95ab80 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -17,6 +17,10 @@ jobs: - name: Check clang-format run: | + if [ ! -f .clang-format ]; then + echo "No .clang-format found, skipping check." + exit 0 + fi find . \( -name "*.cpp" -o -name "*.hpp" -o -name "*.h" \) \ ! -path "./build/*" ! -path "./install/*" \ | xargs clang-format-14 --dry-run --Werror