1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-07-06 00:53:13 +02:00

Add 'make format-check' and similar clang format check to CI.

This commit is contained in:
Bram Matthys
2026-07-05 14:25:47 +02:00
parent 4241606d26
commit 7bf4e75dea
2 changed files with 38 additions and 0 deletions
+32
View File
@@ -57,3 +57,35 @@ jobs:
- name: Run tests
run: extras/build-tests/nix/run-tests
format-check:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
#uses: actions/checkout@v4
#no, pin to v4.2.2 for security reasons:
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
#and we don't need the credentials later..
with:
persist-credentials: false
fetch-depth: 1
# We pin clang-format to major version 21 because different versions
# format slightly differently (which would cause false failures).
# This must match the version developers use, see also the comment
# at the top of the .clang-format file.
- name: Install clang-format 21
run: |
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt-llvm-org.asc >/dev/null
echo "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-21 main" | sudo tee /etc/apt/sources.list.d/llvm21.list
sudo apt-get update
sudo apt-get install -y --no-install-recommends clang-format-21
# Same check as 'make format-check' in Makefile.in (we cannot use
# that directly here because 'make' requires ./configure to have run).
- name: Check code formatting
run: |
clang-format-21 --version
clang-format-21 --dry-run --Werror `git ls-files src include | grep -E '\.(c|h)$' | grep -vE 'crypt_blowfish|openssl_hostname_validation'`
+6
View File
@@ -174,6 +174,12 @@ depend:
format:
clang-format -i `git ls-files src include | grep -E '\.(c|h)$$' | grep -vE 'crypt_blowfish|openssl_hostname_validation'`
# Like 'make format' but only CHECK if everything is formatted properly,
# without modifying any file. Fails if 'make format' would change something.
# The CI runs this too (see .github/workflows/linux-ci.yml).
format-check:
clang-format --dry-run --Werror `git ls-files src include | grep -E '\.(c|h)$$' | grep -vE 'crypt_blowfish|openssl_hostname_validation'`
install: all
$(INSTALL) -m 0700 -d $(DESTDIR)@BINDIR@
$(INSTALL) -m 0700 src/ircd $(DESTDIR)@BINDIR@/unrealircd