summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeejin Ahn <aheejin@gmail.com>2019-04-30 17:12:36 -0700
committerGitHub <noreply@github.com>2019-04-30 17:12:36 -0700
commitd77f0fdfb5f38b254a9382439a4961559b5d8cbe (patch)
tree08165e737bc8159e4027fdb4dae00107d469324f
parenta360a68b78248196b157ba6b950456d17d1b5190 (diff)
parenta81f5cb4201a9569c80e101e5e86dcd7aa320943 (diff)
downloadbinaryen-d77f0fdfb5f38b254a9382439a4961559b5d8cbe.tar.gz
binaryen-d77f0fdfb5f38b254a9382439a4961559b5d8cbe.tar.bz2
binaryen-d77f0fdfb5f38b254a9382439a4961559b5d8cbe.zip
Add clang-tidy-diff hook to Travis CI (#2060)
This adds clang-tidy hook to Travis CI. This runs clang-tidy to the diff between the current HEAD and master. (It takes very long time to run clang-tidy on the whole repo, so it is not feasible anyway.)
-rw-r--r--.travis.yml4
-rwxr-xr-xclang-tidy-diff.sh13
2 files changed, 16 insertions, 1 deletions
diff --git a/.travis.yml b/.travis.yml
index a070c8977..bf46930a9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -64,7 +64,9 @@ jobs:
- ./scripts/gen-s-parser.py | diff src/gen-s-parser.inc -
- BUILD_SUBDIR=${BUILD_SUBDIR:-.}
- mkdir -p ${BUILD_SUBDIR} && cd ${BUILD_SUBDIR}
- - cmake ${TRAVIS_BUILD_DIR} -DCMAKE_C_FLAGS="$COMPILER_FLAGS" -DCMAKE_CXX_FLAGS="$COMPILER_FLAGS" -DCMAKE_INSTALL_PREFIX=install
+ - cmake ${TRAVIS_BUILD_DIR} -DCMAKE_C_FLAGS="$COMPILER_FLAGS" -DCMAKE_CXX_FLAGS="$COMPILER_FLAGS" -DCMAKE_INSTALL_PREFIX=install -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
+ # clang-tidy-diff.sh may not exist when BUILD_SUBDIR is a subdirectory
+ - if [ -f clang-tidy-diff.sh ]; then ./clang-tidy-diff.sh; fi
- make -j2 install
- cd ${TRAVIS_BUILD_DIR}
- ./check.py --binaryen-bin=${BUILD_SUBDIR}/install/bin
diff --git a/clang-tidy-diff.sh b/clang-tidy-diff.sh
new file mode 100755
index 000000000..931ad1a11
--- /dev/null
+++ b/clang-tidy-diff.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+CLANG_DIR=$(dirname $(dirname $(which clang-tidy)))
+CLANG_TIDY_DIFF=$CLANG_DIR/share/clang/clang-tidy-diff.py
+MERGE_BASE=$(git merge-base master HEAD)
+TIDY_MSG=$(git diff -U0 $MERGE_BASE | $CLANG_TIDY_DIFF -quiet -p1 2> /dev/null)
+if [ -n "$TIDY_MSG" -a "$TIDY_MSG" != "No relevant changes found." ]
+then
+ echo "Fix clang-tidy errors before committing!"
+ echo
+ # Run clang-tidy once again to show the error
+ git diff -U0 $MERGE_BASE | $CLANG_TIDY_DIFF -quiet -p1
+ exit 1
+fi