Travis-CI/Coverity 도구를 구성한 중간 크기 github 저장소가 있습니다. 약 한 달 전에 설치 프로그램이 잘 작동했습니다. Travis가 컴파일하고 응용 프로그램을 빌드 한 다음, Coverity 검사를 수행하여 내 Coverity 페이지에서 결과를 볼 수있었습니다.TravisCI/Coverity : 경고 - 파일이 생성되지 않았습니다.
그러나 최근에는 Coverity 분석이 중단되었습니다. 나는 트래비스 로그 파일을 통해보고하고 성공했고, 그게 내가 무엇을 발견 빌드 이전 로그에 비해 :
[:
로그의 끝에서, 실패한 버전은 다음 경고를 포함 경고] 파일이 방출되지 않았습니다. 이는 구성상의 문제점 또는 빌드 명령으로 실제로 컴파일 된 파일이 없기 때문일 수 있습니다.
컴파일에 실제로 사용 된 컴파일러를 구성했는지 확인하십시오. 자세한 내용은
에서 찾아보세요 : 0 파일 /home/travis/build/name/repo-name/build/cov-int/build-log.txt
추출 SCM 데이터 ...
...
그래서, 트래비스가 전달하는 빌드,하지만 아무것도는 커버 리티에 대해 생성되지 않습니다. 내 트래비스 구성 파일을 확인하고 Coverity 빌드가 성공했을 때 커밋과 동일합니다.
실험을 위해 프로젝트 저장소를 복제하고 빌드가 성공적으로 완료되면 버전으로 롤백하고 Travis/Coverity를 설정했습니다. 그리고 어떻게 됐을 까? 같은 경고! 따라서 과거 (약 35 일 전)에 작동했던 동일한 설정이 더 이상 작동하지 않습니다. 그러므로 나는 결론을 내린다. 트래비스가 특정 파일을 생성하지 않기 때문에 뭔가가 바뀌었다.
누구든지이 문제가 발생했는지 궁금합니다. 그리고 그것이 무엇에 관한 것일 수 있습니까? 변경해야 할 Travis 설정이 있습니까?
몇 가지 추가 정보 : 저는 CMake를 사용하여 프로젝트를 빌드하고 두 가지 종속성이 있습니다 : Qt와 OpenSceneGraph (트래비스에 설치해야 함).
이 내 coverity_scan
분기에 내 .travis.yml
의 대략적인 스크립트입니다
language: cpp
os: linux
compiler: gcc
sudo: required
dist: trusty
addons:
apt:
packages:
- cmake
- g++-4.8
coverity_scan:
project:
name: "name/project"
description: "Build submitted via Travis CI"
notification_email: [email protected]
build_command: "make -j2 VERBOSE=1"
branch_pattern: coverity_scan
env:
global:
- PROJECT_SOURCE=${TRAVIS_BUILD_DIR}/src/
- PROJECT_BUILD=${TRAVIS_BUILD_DIR}/build/
# The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
# via the "travis encrypt" command using the project repo's public key
- secure: "...secure..."
before_install:
# download Qt
# ...
# download OpenSceneGraph
# ...
# imitate x server
- export DISPLAY=:99.0
- /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16
- sleep 3
install:
# install Qt
- sudo apt-get --yes install qt55base qt55imageformats qt55svg
# compiler
- export CXX="g++-4.8"
- export CC="gcc-4.8"
# install OpenSceneGraph
# ...
before_script:
# Qt location
# ...
# OpenSceneGraph variables
# ...
# create build folder
- mkdir $PROJECT_BUILD
- cd $PROJECT_BUILD
# cmake command
- cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/opt/qt54/lib/cmake -DProject_BUILD_TEST=ON -DProject_VERSION=0.0.0 $PROJECT_SOURCE
script:
- if [[ "${COVERITY_SCAN_BRANCH}" == 1 ]];
then
echo "Don't build on coverty_scan branch.";
exit 0;
fi
# compile everything, if not coverity branch
- make -j2
# run unit tests
# ...
여기서의 문제점은 컴파일러 유형을 명시 적으로 지정해야하는 것이 아니라 컴파일러 바이너리 자체를 지정해야한다는 것입니다. 'cov-configure --gcc'는 바이너리의 이름이'gcc' 또는'g ++'로 가정합니다. '-m32' 나'-m64'와 같은 특정 인수를 사용하면 설정이 없기 때문에 컴파일이 실패합니다. 이것이 일어나지 않게하려면 cov-configure 명령 행에'--template'을 추가해야합니다. – Caleb