blob: 30211d79bc48cddaba108e10933f52a6f1443edf [file] [log] [blame] [edit]
#!/bin/bash
source .github/travis/common.sh
set -e
$SPACER
if [ "_${_COVERITY_EMAIL}" == "_" ] ||
[ "_${_COVERITY_URL}" == "_" ] ||
[ "_${_COVERITY_MD5}" == "_" ]
then
echo "_COVERITY_EMAIL, _COVERITY_URL and _COVERITY_MD5 must be set before using this script"
exit 1
fi
build_root=${PWD}
##########################
# download coverity tool
start_section "coverity download" "${GREEN}Downloading coverity tool..${NC}"
mkdir -p ${HOME}/coverity
cd ${HOME}/coverity
# get coverity and extract it
wget --quiet ${_COVERITY_URL} --post-data="token=${COVERITY_SCAN_TOKEN}&project=Verilog+to+Routing" -O coverity.tar.gz
echo "${_COVERITY_MD5} coverity.tar.gz" | md5sum -c -
tar xzf coverity.tar.gz
rm -f coverity.tar.gz
# export the coverity tool
coverity_dir=$(ls -d cov-analysis-linux64*)
export PATH="${PATH}:${HOME}/coverity/${coverity_dir}/bin"
which cov-build
# make sure we use the compiler so we clear the cache, disable ccache and remove it from the path
ccache --clear
export CCACHE_DISABLE=1
export PATH=${PATH/'/usr/bin/ccache:'/}
export PATH=${PATH/':/usr/lib/ccache'/}
#tell coverity about the CC compiler used
cov-configure --template --compiler ${CC} --comptype gcc
cd ${build_root}
end_section "coverity download"
$SPACER
#######################
# build with coverity
start_section "coverity.vtr.build" "${GREEN}Building..${NC}"
# make sure we use the compiler so we clear the cache
# remove old files in case they exist (usefull if we run this locally)
rm -f CMakeCache.txt
rm -Rf build
# prepare the build
mkdir -p build
cd build
cmake -DCMAKE_BUILD_TYPE=debug -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on ..
# now build and scan
cov-build --dir cov-int make -j$(nproc --all)
end_section "coverity.vtr.build"
$SPACER
#######################
# export to coverity
start_section "coverity.export" "${GREEN}Exporting..${NC}"
tar -czvf vtr_coverity.tar.gz cov-int
curl --form token=${COVERITY_SCAN_TOKEN} \
--form email=${_COVERITY_EMAIL} \
--form file=@vtr_coverity.tar.gz\
--form version="master branch head" \
--form description="$(git log -1|head -1)" \
https://scan.coverity.com/builds?project=Verilog+to+Routing
end_section "coverity.export"
$SPACER