【问题标题】:Coverity scan on travis matrix build特拉维斯矩阵构建的覆盖率扫描
【发布时间】:2016-04-14 01:53:20
【问题描述】:

我正在将 [coverity scan][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.

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

【问题讨论】:

    标签: travis-ci coverity


    【解决方案1】:

    我最近为所有项目所做的是,可选(取决于配额)在我的 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 状态将变为红色(“构建失败”)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-11
      • 1970-01-01
      • 2013-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多