]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Start enforcing the clang-format rules on changed files
authorOndřej Surý <ondrej@isc.org>
Fri, 14 Feb 2020 06:10:06 +0000 (07:10 +0100)
committerOndřej Surý <ondrej@sury.org>
Fri, 14 Feb 2020 08:07:46 +0000 (09:07 +0100)
.gitlab-ci.yml
util/cformat.sh [changed mode: 0644->0755]

index 3e980c8949a875ba03dbf04741e11dc4ed5c1398..7719ea14a7d4ad2c270b0569fbe80dc38cb9428c 100644 (file)
@@ -17,9 +17,11 @@ variables:
 
   MAKE: make
   CONFIGURE: ./configure
+  CLANG: clang-9
   SCAN_BUILD: scan-build-9
   SYMBOLIZER: /usr/lib/llvm-9/bin/llvm-symbolizer
   ASAN_SYMBOLIZER_PATH: "$SYMBOLIZER"
+  CLANG_FORMAT: clang-format-11
 
   CFLAGS_COMMON: -fno-omit-frame-pointer -fno-optimize-sibling-calls -O1 -g -Wall -Wextra 
 
@@ -384,6 +386,12 @@ misc:sid:amd64:
     expire_in: "1 day"
     when: on_failure
 
+💾:sid:amd64:
+  <<: *precheck_job
+  script:
+    - if [ -r .clang-format ]; then ./util/cformat.sh "${CLANG_FORMAT}"; fi
+    - if test "$(git status --porcelain | grep -Ev '\?\?' | wc -l)" -gt "0"; then git status --short; exit 1; fi
+
 🐞:sid:amd64:
   <<: *precheck_job
   <<: *debian_buster_amd64_image
@@ -618,7 +626,7 @@ scan-build:buster:amd64:
   <<: *debian_buster_amd64_image
   stage: postcheck
   variables:
-    CC: clang-9
+    CC: "${CLANG}"
     CFLAGS: "${CFLAGS_COMMON}"
     CONFIGURE: "${SCAN_BUILD} ./configure"
     EXTRA_CONFIGURE: "--enable-dnstap --with-libidn2"
@@ -878,7 +886,7 @@ tsan:buster:amd64:
   <<: *debian_buster_amd64_image
   <<: *build_job
   variables:
-    CC: clang-9
+    CC: "${CLANG}"
     CFLAGS: "${CFLAGS_COMMON} -fsanitize=thread -DISC_MEM_USE_INTERNAL_MALLOC=0"
     LDFLAGS: "-fsanitize=thread"
     EXTRA_CONFIGURE: "--with-libidn2 --enable-pthread-rwlock"
old mode 100644 (file)
new mode 100755 (executable)
index 5d125f6..3ad6231
@@ -9,19 +9,27 @@
 # See the COPYRIGHT file distributed with this work for additional
 # information regarding copyright ownership.
 
+CLANG_FORMAT=clang-format
+if [ -n "$1" ]; then
+    CLANG_FORMAT="$1"
+fi
+
+CLANG_FORMAT_VERSION=$("$CLANG_FORMAT" --version | sed -e 's/clang-format version \([0-9]*\)\..*/\1/')
+
+if [ "$CLANG_FORMAT_VERSION" -lt 11 ]; then
+    echo "clang-format version 11 required"
+    exit 1
+fi
+
 # use the main .clang-format for C files
-find bin lib -name "*.c" |
-    xargs clang-format --style=file --sort-includes -i
+"$CLANG_FORMAT" --style=file --sort-includes -i $(git ls-files '*.c')
 
 # set up a temporary .clang-format file for headers ONLY
 cp -f .clang-format .clang-format.bak
 sed -e 's/\(AlignConsecutiveDeclarations\).*/\1: true/' \
-    -e 's/\(AlwaysBreakAfterReturnType\).*/\1: All/' \
     .clang-format.bak > .clang-format
 
-# modify header files
-find bin lib -name "*.h" |
-    xargs clang-format --style=file --sort-includes -i
+"$CLANG_FORMAT" --style=file --sort-includes -i $(git ls-files '*.h')
 
 # restore the original .clang-format file
 cp -f .clang-format.bak .clang-format