fixed linter script
now support staging area and HEAD~1
This commit is contained in:
parent
3f81b7fb2a
commit
580d4ba63c
3 changed files with 16 additions and 5 deletions
3
Jenkins/BETA-phabricator-linux/Jenkinsfile
vendored
3
Jenkins/BETA-phabricator-linux/Jenkinsfile
vendored
|
@ -122,10 +122,9 @@ pipeline {
|
||||||
steps {
|
steps {
|
||||||
dir("${LLVM_DIR}")
|
dir("${LLVM_DIR}")
|
||||||
{
|
{
|
||||||
|
|
||||||
script {
|
script {
|
||||||
try {
|
try {
|
||||||
sh(script: "${SCRIPT_DIR}/lint.sh")
|
sh(script: "${SCRIPT_DIR}/lint.sh HEAD~1")
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
success = false;
|
success = false;
|
||||||
failure_message += "\nFailed to run linters" // append as build might already be broken
|
failure_message += "\nFailed to run linters" // append as build might already be broken
|
||||||
|
|
|
@ -17,8 +17,11 @@ import re
|
||||||
import sys
|
import sys
|
||||||
import pathspec
|
import pathspec
|
||||||
|
|
||||||
|
|
||||||
# Takes an output of git diff and removes files ignored by patten specified by ignore file.
|
# Takes an output of git diff and removes files ignored by patten specified by ignore file.
|
||||||
def main():
|
def main():
|
||||||
|
# FIXME: use argparse for parsing commandline parameters
|
||||||
|
# Maybe FIXME: Replace path to file with flags for tidy/format, use paths relative to `__file__`
|
||||||
argv = sys.argv[1:]
|
argv = sys.argv[1:]
|
||||||
if not argv:
|
if not argv:
|
||||||
print("Please provide a path to .ignore file.")
|
print("Please provide a path to .ignore file.")
|
||||||
|
|
|
@ -19,12 +19,21 @@
|
||||||
set -eux
|
set -eux
|
||||||
|
|
||||||
echo "Running linters... ====================================="
|
echo "Running linters... ====================================="
|
||||||
|
# In the normal case: diff staging area against head
|
||||||
|
# Optionml: diff against another commit, set via command line parameter
|
||||||
|
COMMIT=HEAD
|
||||||
|
if (( $# == 1 )); then
|
||||||
|
COMMIT="$1"
|
||||||
|
fi;
|
||||||
|
|
||||||
cd "${WORKSPACE}"
|
if [ ! -f "compile_commands.json" ] ; then
|
||||||
|
echo "Could not find compile commands.json in $(pwd)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# clang-format
|
# clang-format
|
||||||
# Let clang format apply patches --diff doesn't produces results in the format we want.
|
# Let clang format apply patches --diff doesn't produces results in the format we want.
|
||||||
git-clang-format
|
git-clang-format "${COMMIT}"
|
||||||
set +e
|
set +e
|
||||||
git diff -U0 --exit-code | "${SCRIPT_DIR}/ignore_diff.py" "${SCRIPT_DIR}/clang-format.ignore" > "${TARGET_DIR}"/clang-format.patch
|
git diff -U0 --exit-code | "${SCRIPT_DIR}/ignore_diff.py" "${SCRIPT_DIR}/clang-format.ignore" > "${TARGET_DIR}"/clang-format.patch
|
||||||
set -e
|
set -e
|
||||||
|
@ -32,6 +41,6 @@ set -e
|
||||||
git checkout -- .
|
git checkout -- .
|
||||||
|
|
||||||
# clang-tidy
|
# clang-tidy
|
||||||
git diff -U0 HEAD | "${SCRIPT_DIR}/ignore_diff.py" "${SCRIPT_DIR}/clang-tidy.ignore" | clang-tidy-diff -p1 -quiet | sed "/^[[:space:]]*$/d" > "${TARGET_DIR}"/clang-tidy.txt
|
git diff -U0 "${COMMIT}" | "${SCRIPT_DIR}/ignore_diff.py" "${SCRIPT_DIR}/clang-tidy.ignore" | clang-tidy-diff -p1 -quiet | sed "/^[[:space:]]*$/d" > "${TARGET_DIR}"/clang-tidy.txt
|
||||||
|
|
||||||
echo "linters completed ======================================"
|
echo "linters completed ======================================"
|
||||||
|
|
Loading…
Reference in a new issue