commit: 00090c9639522b484a4f8c3cf9b9fcb2f7ad6a5c Author: Mike Frysinger <vapier <AT> gentoo <DOT> org> AuthorDate: Mon Jun 20 03:12:05 2016 +0000 Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org> CommitDate: Mon Jun 20 03:12:05 2016 +0000 URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=00090c96
travis: add coverity scan integration .travis.yml | 9 ++++++++- travis/main.sh | 25 +++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 015172e..fb4c521 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,15 +2,22 @@ # https://docs.travis-ci.com/ language: c +# Order here matters for implicit matrix generation and coverity scan. +# See travis/main.sh for details. compiler: - - clang - gcc + - clang sudo: false +# Order here matters; see compiler comment above. os: - linux +env: + global: + - secure: "qF/ueXvm1uawirfQL+jK5LSJW1P+ZVXDx5t9HljFP1jC45D/1aqEs1ffaNkvBJohUJy6mABnXN5+ZP0PoQ+ZA01t+6NDc/LrowGP87T02KGwjBukQ9tQK8zVutsT+0CY3qUPhRcaLH5Gt3c+uPDKlLndg/bXWS6cRpMt6tC3VTy+WpAlvHHfZJjSZVYp8qhCattnaZ7GvzqGqbjBZ6X7TrQnwIDdGAyg5r4xnViDxu9lO4ZH4zS6Rc7DxesrqC3zxwPRw5HLNsGbJiGQF3meXH6rVNt1uxKwwOQoDcL0NKiyAMpXwu5iGeuMILoy3KMpFwZFnhyXqMGRORakDuDNB9oMgzp+PB3Zb7TICXbhxbrQ46lSlv0VWkwn3bcJ0lek53NzDUmM2uywvCUYybPgn3xCqY9jG0zwO2ZIACc1ekGh7y0gFXfBoSZGhl1VthV5hWMJ01p/n5jK7XdDmK4G/+0wN2WlHhyvjoF6XyJ+SRC85l6VhpBNbFJA2bGT2Y4+p/CzF7M8DVYR3o+OfCWxsiZyE+Vnmpdg4U829oy97obIuBeCvBd1Vp0hoB+RpzaeqzS69N+S4tgCIXvIdu168HltFaTUPtvIGoDtIAPCaUZC8jVO22cA6RpNkac3HjpLSceYYtdkiph4VuBMwHZj6/N2+m46Y9Uxrh01KzLy/GY=" + addons: apt: packages: diff --git a/travis/main.sh b/travis/main.sh index e333685..7831298 100755 --- a/travis/main.sh +++ b/travis/main.sh @@ -2,6 +2,27 @@ . "${0%/*}"/lib.sh +# We have to do this by hand rather than use the coverity addon because of +# matrix explosion: https://github.com/travis-ci/travis-ci/issues/1975 +coverity_scan() { + local reason + [[ ${TRAVIS_JOB_NUMBER} != *.1 ]] && reason="not first build job" + [[ -n ${TRAVIS_TAG} ]] && reason="git tag" + [[ ${TRAVIS_PULL_REQUEST} == "true" ]] && reason="pull request" + if [[ -n ${reason} ]] ; then + echo "Skipping coverity scan due to: ${reason}" + return + fi + + export COVERITY_SCAN_PROJECT_NAME="${TRAVIS_REPO_SLUG}" + export COVERITY_SCAN_NOTIFICATION_EMAIL="vap...@gentoo.org" + export COVERITY_SCAN_BUILD_COMMAND="make -j${ncpus}" + export COVERITY_SCAN_BUILD_COMMAND_PREPEND="git clean -q -x -d -f; git checkout -f" + export COVERITY_SCAN_BRANCH_PATTERN="master" + + curl -s "https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh" | bash || : +} + main() { # For local deps like iniparser. export CPPFLAGS="-I${PWD}/../sysroot" @@ -14,5 +35,9 @@ main() { # Debug build w/ASAN and such enabled. m debug m check + + # Do scans last as they like to dirty the tree and some tests + # expect a clean tree (like code style checks). + v --fold="coverity_scan" coverity_scan } main "$@"