travis矩阵构建的覆盖率扫描

时间:2016-01-09 11:42:54

标签: travis-ci coverity

我正在为我的项目添加[覆盖率扫描] [1],但我面临配额限制问题,因为我的travis构建使用矩阵。

我设法运行自定义封面脚本(通过 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.

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

1 个答案:

答案 0 :(得分:0)

我在我最近的所有项目中所做的事情是可选(取决于配额)在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_SCAN_BUILD_COMMAND(仅make)。如果成功,它将再次运行make(在script阶段),但由于 make 的属性,这将不会做太多。 如果失败(因为构建失败),它也将再次运行make(在script阶段),这将很快再次失败,整个构建失败。

但是,如果我的封面配额用尽,则travisci_build_coverity_scan.sh脚本将失败,但此失败将通过|| true变为伪成功。 然后,在script阶段,项目将使用make构建,最终的成功取决于此构建的结果。

简而言之:

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