GitLab CI+tools: Make our clang version configurable.

Track our preferred version of clang using $CLANG_VERSION in
.gitlab-ci.yml. Update validate-clang-check.sh to accept a clang
version.
This commit is contained in:
Gerald Combs 2021-04-30 14:06:21 -07:00 committed by Wireshark GitLab Utility
parent ce95951993
commit c603a5f2c1
2 changed files with 24 additions and 10 deletions

View File

@ -23,6 +23,8 @@ variables:
GIT_DEPTH: "1"
GIT_FETCH_EXTRA_FLAGS: "--depth=5000"
CCACHE_DIR: "${CI_PROJECT_DIR}/ccache"
# Preferred version of clang available on wireshark-ubuntu-dev
CLANG_VERSION: 12
# Enable color output in CMake, Ninja, and other tools. https://bixense.com/clicolors/
CLICOLOR_FORCE: 1
@ -144,13 +146,13 @@ variables:
needs: []
# Rely on fedora:latest and debian-stable jobs for testing a recent GCC version.
clang-12:
clang-latest:
extends:
- .build-ubuntu
- .if-merged
variables:
CC: clang-12
CXX: clang++-12
CC: "clang-$CLANG_VERSION"
CXX: "clang++-$CLANG_VERSION"
build:ubuntu-dist:
stage: .pre
@ -390,8 +392,8 @@ merge-req:ubuntu-clang-other-tests:
tags:
- docker
variables:
CC: clang-12
CXX: clang++-12
CC: "clang-$CLANG_VERSION"
CXX: "clang++-$CLANG_VERSION"
script:
# build-ubuntu puts us in `build`.
- cd ..
@ -405,7 +407,7 @@ merge-req:ubuntu-clang-other-tests:
- script --command ninja --flush --quiet --return ../clang_report.txt
- ansi2html < ../clang_report.txt > ../clang_report.html
- ./run/tshark -v
- sh -c '[ ! -e ../tools/validate-clang-check.sh ] || ../tools/validate-clang-check.sh'
- ../tools/validate-clang-check.sh -c $CLANG_VERSION
- ninja checkAPI
artifacts:
paths:
@ -487,7 +489,6 @@ clang-scan-build:
stage: analysis
needs: []
variables:
CLANG_VERSION: 12
CC: "clang-${CLANG_VERSION}"
CXX: "clang++-${CLANG_VERSION}"
script:

View File

@ -11,10 +11,23 @@
#
COMMIT_FILES=$( git diff-index --cached --name-status HEAD^ | grep -v "^D" | cut -f2 | grep "\\.c$\|cpp$" )
CLANG_CHECK_CMD=clang-check
while getopts c: OPTCHAR
do
case $OPTCHAR in
c)
CLANG_CHECK_CMD="clang-check-$OPTARG"
exit 0
;;
*)
echo "Usage: $( basename "$0" ) [ -c <clang version> ]"
esac
done
for FILE in $COMMIT_FILES; do
# Skip some special cases
FILE_BASENAME="$(basename $FILE)"
FILE_BASENAME="$( basename "$FILE" )"
# iLBC: the file is not even compiled when ilbc is not installed
if test "$FILE_BASENAME" = "iLBCdecode.c"
then
@ -26,6 +39,6 @@ for FILE in $COMMIT_FILES; do
continue
fi
clang-check ../$FILE
clang-check -analyze ../$FILE
"$CLANG_CHECK_CMD" "../$FILE"
"$CLANG_CHECK_CMD" -analyze "../$FILE"
done