summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Leigh <rleigh@codelibre.net>2021-02-13 21:22:31 +0000
committerRoger Leigh <rleigh@codelibre.net>2021-02-13 23:01:28 +0000
commitcace39b620277bf40c06a90fe2ec004d78e48f0d (patch)
tree0eb9cfe2b1ea61a6885abaf91ece160f63f86bda
parentc00363281b5d24170d5f4784fdc96e1c08ab7cfa (diff)
downloadlibtiff-git-ci-coverity.tar.gz
ci: Add Coverity static analysis jobci-coverity
-rw-r--r--.gitlab-ci.yml10
-rw-r--r--build/gitlab-ci25
2 files changed, 34 insertions, 1 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7ceb9d8f..23abeeb9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,6 +2,7 @@ image: registry.gitlab.com/libtiff/libtiff-ci-ubuntu20.04:latest
stages:
- build
+ - static-analysis
- pages
autoconf:
@@ -21,6 +22,15 @@ cmake-ninja:
script:
- sh build/gitlab-ci cmake "Ninja" Debug
+coverity:
+ stage: static-analysis
+ image: registry.gitlab.com/libtiff/libtiff-ci-ubuntu20.04-coverity:latest
+ script:
+ - sh build/gitlab-ci coverity "Ninja" Debug
+ only:
+ refs:
+ - master
+
pages:
stage: pages
script:
diff --git a/build/gitlab-ci b/build/gitlab-ci
index 1280f2c4..110df391 100644
--- a/build/gitlab-ci
+++ b/build/gitlab-ci
@@ -32,11 +32,30 @@ cmake_build()
opts="-Dfatal-warnings=ON"
echo "Running cmake -G "$1" -DCMAKE_BUILD_TYPE="$2" -DCMAKE_INSTALL_PREFIX=../cmake-install ${opts} .."
cmake -G "$1" -DCMAKE_BUILD_TYPE="$2" -DCMAKE_INSTALL_PREFIX=../cmake-install ${opts} ..
- cmake --build .
+ $COVERITY_BUILD cmake --build .
cmake --build . --target install
ctest -V
}
+# Static-analysis with coverity
+coverity_build()
+{
+ curl -o /tmp/cov-analysis-linux64.tgz \
+ https://scan.coverity.com/download/linux64 \
+ --form project=$COVERITY_SCAN_PROJECT_NAME \
+ --form token=$COVERITY_SCAN_TOKEN
+ tar xfz /tmp/cov-analysis-linux64.tgz
+ COVERITY_BUILD="$(pwd)/cov-analysis-linux64-*/bin/cov-build --dir cov-int" cmake_build "$@"
+ tar cfz cov-int.tar.gz cov-int
+ curl https://scan.coverity.com/builds?project=$COVERITY_SCAN_PROJECT_NAME \
+ --form token=$COVERITY_SCAN_TOKEN \
+ --form email=$GITLAB_USER_EMAIL \
+ --form file=@cov-int.tar.gz \
+ --form version="`git describe --tags`" \
+ --form description="`git describe --tags` / $CI_COMMIT_TITLE / $CI_COMMIT_REF_NAME:$CI_PIPELINE_ID"
+}
+
+
build=$1
shift
@@ -49,6 +68,10 @@ case $build in
echo "Testing CMake build"
cmake_build "$@"
;;
+ coverity)
+ echo "Static analysis with Coverity"
+ coverity_build "$@"
+ ;;
*)
echo "Invalid argument: \"$arg\"" >&2
exit 1