diff --git a/.travis-ci.d/coverity_scan.sh b/.travis-ci.d/coverity_scan.sh new file mode 100755 index 0000000..8ee8bf1 --- /dev/null +++ b/.travis-ci.d/coverity_scan.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +ILCSOFT=/cvmfs/clicdp.cern.ch/iLCSoft/builds/current/CI_${COMPILER} +source $ILCSOFT/init_ilcsoft.sh + +cd /Package +mkdir build +cd build +cmake -C $ILCSOFT/ILCSoft.cmake -DCMAKE_CXX_FLAGS="-fdiagnostics-color=always" .. && \ +export PATH=/Package/cov-analysis-linux64/bin:$PATH && \ +cov-build --dir cov-int make -j2 && \ +tar czvf myproject.tgz cov-int diff --git a/.travis.yml b/.travis.yml index f691642..e2fc487 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,22 @@ env: - COMPILER=gcc - COMPILER=llvm + +before_install: + - wget https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest_all.deb + - sudo dpkg -i cvmfs-release-latest_all.deb + - sudo apt-get update + - sudo apt-get install cvmfs cvmfs-config-default + - rm -f cvmfs-release-latest_all.deb + - wget https://lcd-data.web.cern.ch/lcd-data/CernVM/default.local + - sudo mkdir -p /etc/cvmfs + - sudo mv default.local /etc/cvmfs/default.local + - sudo /etc/init.d/autofs stop + - sudo cvmfs_config setup + - sudo mkdir -p /cvmfs/clicdp.cern.ch + - sudo mount -t cvmfs clicdp.cern.ch /cvmfs/clicdp.cern.ch + - ls /cvmfs/clicdp.cern.ch + # command to install dependencies install: - shopt -s extglob dotglob @@ -18,13 +34,27 @@ install: - mv !(Package) Package - shopt -u dotglob - export PKGDIR=${PWD}/Package - - curl -O https://lcd-data.web.cern.ch/lcd-data/CernVM/cernvm3-docker-latest.tar - - cat cernvm3-docker-latest.tar | docker import - cernvm + - export description=`date` + - export COVERITY_REPO=`echo ${TRAVIS_REPO_SLUG} | sed 's/\//\%2F/g'` + - if [[ "${TRAVIS_EVENT_TYPE}" == "cron" && "${COMPILER}" == "gcc" ]]; + then wget https://scan.coverity.com/download/linux64 --post-data "token=${COVERITY_SCAN_TOKEN}&project=${COVERITY_REPO}" -O Package/coverity_tool.tgz; cd Package; mkdir cov-analysis-linux64; tar -xf coverity_tool.tgz -C cov-analysis-linux64 --strip-components=2; + fi # command to run tests script: - - docker run -t -v $PKGDIR:/Package -e COMPILER=$COMPILER cernvm /init /Package/.travis-ci.d/compile_and_test.sh + - docker run -it --name CI_container -v $PKGDIR:/Package -e COMPILER=$COMPILER -v /cvmfs/clicdp.cern.ch:/cvmfs/clicdp.cern.ch -d clicdp/slc6-build /bin/bash + - if [[ "${TRAVIS_EVENT_TYPE}" == "cron" && "${COMPILER}" == "gcc" ]]; + then docker exec -it CI_container /bin/bash -c "./Package/.travis-ci.d/coverity_scan.sh"; + elif [[ "${TRAVIS_EVENT_TYPE}" == "cron" && "${COMPILER}" == "llvm" ]]; + then echo "Running the weekly Coverity Scan, no LLVM/Clang build this time"; + else docker exec -it CI_container /bin/bash -c "./Package/.travis-ci.d/compile_and_test.sh"; + fi + - if [[ "${TRAVIS_EVENT_TYPE}" == "cron" && "${COMPILER}" == "gcc" ]]; + then curl --form token=${COVERITY_SCAN_TOKEN} --form email=noreply@cern.ch --form file=@${PKGDIR}/build/myproject.tgz --form version="master" --form description="${description}" https://scan.coverity.com/builds?project=${COVERITY_REPO} ; + fi # Don't send e-mail notifications notifications: - email: false + email: + on_success: never + on_failure: always diff --git a/README.md b/README.md index 95d5d8d..204ae2e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # ConformalTracking [![Build Status](https://travis-ci.org/iLCSoft/ConformalTracking.svg?branch=master)](https://travis-ci.org/iLCSoft/ConformalTracking) +[![Coverity Scan Build Status](https://scan.coverity.com/projects/12348/badge.svg)](https://scan.coverity.com/projects/ilcsoft-conformaltracking) Package for running pattern recognition based on conformal mapping and cellular automaton. This is not tied to a given geometry, but has been developed for the CLIC detector model 2015.