From 2a95af20ddb7d1dbd7aee8d3828611bf70ab7fa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Devernay?= Date: Sat, 5 Dec 2015 18:29:02 +0100 Subject: [PATCH] coverity: update script --- .travis-coverity-scan-build.sh | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/.travis-coverity-scan-build.sh b/.travis-coverity-scan-build.sh index 183a7cf3ba..ba8a82d633 100755 --- a/.travis-coverity-scan-build.sh +++ b/.travis-coverity-scan-build.sh @@ -1,11 +1,17 @@ #!/bin/sh +# Modified coverity scan build script +# Original script available at https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh +# Additions (see corresponding sections below): +# - Verify Coverity Scan run condition +# - Verify Coverity Scan script test mode +# - set TOOL_BASE to a writable directory with more than 1Gb free space set -e # Environment check -echo -e "\033[33;1mNote: PROJECT_NAME and COVERITY_SCAN_TOKEN are available on Project Settings page on scan.coverity.com\033[0m" +echo -e "\033[33;1mNote: COVERITY_SCAN_PROJECT_NAME and COVERITY_SCAN_TOKEN are available on Project Settings page on scan.coverity.com\033[0m" [ -z "$COVERITY_SCAN_PROJECT_NAME" ] && echo "ERROR: COVERITY_SCAN_PROJECT_NAME must be set" && exit 1 -#[ -z "$COVERITY_SCAN_NOTIFICATION_EMAIL" ] && echo "ERROR: COVERITY_SCAN_NOTIFICATION_EMAIL must be set" && exit 1 +[ -z "$COVERITY_SCAN_NOTIFICATION_EMAIL" ] && echo "ERROR: COVERITY_SCAN_NOTIFICATION_EMAIL must be set" && exit 1 [ -z "$COVERITY_SCAN_BRANCH_PATTERN" ] && echo "ERROR: COVERITY_SCAN_BRANCH_PATTERN must be set" && exit 1 [ -z "$COVERITY_SCAN_BUILD_COMMAND" ] && echo "ERROR: COVERITY_SCAN_BUILD_COMMAND must be set" && exit 1 [ -z "$COVERITY_SCAN_TOKEN" ] && echo "ERROR: COVERITY_SCAN_TOKEN must be set" && exit 1 @@ -13,8 +19,9 @@ echo -e "\033[33;1mNote: PROJECT_NAME and COVERITY_SCAN_TOKEN are available on P PLATFORM=`uname` TOOL_ARCHIVE=/tmp/cov-analysis-${PLATFORM}.tgz TOOL_URL=https://scan.coverity.com/download/${PLATFORM} -TOOL_BASE=/tmp/coverity-scan-analysis -UPLOAD_URL="http://scan5.coverity.com/cgi-bin/travis_upload.py" +#TOOL_BASE=/tmp/coverity-scan-analysis +TOOL_BASE=/home/travis/coverity-scan-analysis +UPLOAD_URL="https://scan.coverity.com/builds" SCAN_URL="https://scan.coverity.com" # Verify Coverity Scan run condition @@ -54,7 +61,7 @@ else else WHEN=`echo $AUTH_RES | ruby -e "require 'rubygems'; require 'json'; puts JSON[STDIN.read]['next_upload_permitted_at']"` echo -e "\033[33;1mCoverity Scan analysis NOT authorized until $WHEN.\033[0m" - exit 1 + exit 0 fi fi @@ -83,13 +90,13 @@ COV_BUILD_OPTIONS="" RESULTS_DIR="cov-int" eval "${COVERITY_SCAN_BUILD_COMMAND_PREPEND}" COVERITY_UNSUPPORTED=1 cov-build --dir $RESULTS_DIR $COV_BUILD_OPTIONS $COVERITY_SCAN_BUILD_COMMAND +cov-import-scm --dir $RESULTS_DIR --scm git --log $RESULTS_DIR/scm_log.txt 2>&1 # Upload results echo -e "\033[33;1mTarring Coverity Scan Analysis results...\033[0m" RESULTS_ARCHIVE=analysis-results.tgz tar czf $RESULTS_ARCHIVE $RESULTS_DIR SHA=`git rev-parse --short HEAD` -#VERSION_SHA=$(cat VERSION)#$SHA # Verify Coverity Scan script test mode if [ "$coverity_scan_script_test_mode" = true ]; then @@ -98,14 +105,18 @@ if [ "$coverity_scan_script_test_mode" = true ]; then fi echo -e "\033[33;1mUploading Coverity Scan Analysis results...\033[0m" -curl \ - --progress-bar \ +response=$(curl \ + --silent --write-out "\n%{http_code}\n" \ --form project=$COVERITY_SCAN_PROJECT_NAME \ --form token=$COVERITY_SCAN_TOKEN \ --form email=$COVERITY_SCAN_NOTIFICATION_EMAIL \ --form file=@$RESULTS_ARCHIVE \ --form version=$SHA \ --form description="Travis CI build" \ - $UPLOAD_URL - -# --form description="$VERSION_SHA" \ + $UPLOAD_URL) +status_code=$(echo "$response" | sed -n '$p') +if [ "$status_code" != "201" ]; then + TEXT=$(echo "$response" | sed '$d') + echo -e "\033[33;1mCoverity Scan upload failed: $TEXT.\033[0m" + exit 1 +fi