travis-ci - Travis 矩阵构建上的 Coverity 扫描

标签 travis-ci coverity

我正在将 [coverity scan][1] 添加到我的项目中,但我面临配额限制的问题,因为我的 travis 构建正在使用矩阵。

我设法运行自定义 coverity 脚本(通过 build_script_url 选项)来过滤我的构建作业:

#!/bin/sh

set -e

if [[ $TRAVIS_OS_NAME != osx || $JOB != BUILD_RELEASE_JOKER ]]; then
  echo "Skip build configuration: $TRAVIS_OS_NAME / $JOB"
  exit 1
fi

curl -s https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh | bash

我面临的问题是,如果分析配额超出,它会停止构建作业并显示以下消息:

Coverity Scan analysis selected for branch coverity.
Coverity Scan analysis NOT authorized until Fri, 08 Jan 2016 18:00:52 +0000 UTC.

第二个不好的副作用是构建作业显示为绿色,而该作业尚未运行!

最佳答案

我最近为所有项目所做的事情是,可选(取决于配额)在我的 before_script 中运行覆盖扫描:

before_script:
  - autoreconf -fiv
  - ./configure --disable-silent-rules
  # implement Coverity Scan with before_script instead of addons.coverity_scan
  # to work around too-early quota check by the coverity_scan addon
  - if [[ -n $COVERITY_SCAN_PROJECT_NAME ]] ; then curl -s 'https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh' | bash || true ; fi

script:
- make

这将检查我是否仍然可以向 coverity 提交新版本,如果可以,将运行 COVERITY_SCAN_BUILD_COMMAND (这只是 make )。如果成功,它将运行 make再次(在 script 阶段),但由于 make 的属性,这不会有太大作用。 如果失败(因为构建失败),它也会运行 make再次(在 script 阶段),很快就会再次失败,导致整个构建失败。

但是,如果我的覆盖配额已用完,travisci_build_coverity_scan.sh脚本将失败,但此失败将通过 || true 转变为伪成功。 然后,在 script阶段,该项目将使用 make 构建,最终的成功取决于这次构建的结果。

简而言之:

  • 如果可能(由于配额),构建将提交给 coverity
  • 如果构建成功(有或没有覆盖),travis-ci 状态将变为绿色(“构建通过”)
  • 如果构建失败(有或没有覆盖),travis-ci 状态将变为红色(“构建失败”)

关于travis-ci - Travis 矩阵构建上的 Coverity 扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34693018/

相关文章:

c++ - 避免统计和重命名之间的 TOCTOU(检查时间,使用时间)竞争条件

linux - 避免/减少 Travis-CI 构建的多次安装

C++ : Coverity reports leaks for peculiar use of references and containers

ubuntu - 如何在 Travis-CI 上使用 boost-build 构建?

git - 部署到 Heroku 时 Travis-CI 中的 Head Detached 警告

java - 使用 mysql 在 travis 上运行测试

c++ - 构建 C++11 代码时 Coverity 中的内部错误

docker - 设置.travis.yml以自动部署Docker镜像

ios - Travis CI 的完整 Xcode 版本和设备名称/操作系统列表?

c++ - Coverity 扫描设置?