Travis和Coverity扫描-一切正常,但Coverity似乎没有运行

时间:2019-03-21 14:14:20

标签: c++ cmake travis-ci coverity

这是我非常简单的C ++ / CMake .travis.yml


env:
  global:
   # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
   #   via the "travis encrypt" command using the project repo's public key
   - secure: "<very long encrypted token>"

addons:
  coverity_scan:
    project:
      name: "tinverse/tsm"
    build_command_prepend: cmake .
    build_command: make
    branch_pattern: coverity_scan
  script:
    - echo -n | openssl s_client -CApath /etc/ssl/certs -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-

  apt:
    sources:
    - ubuntu-toolchain-r-test
    packages:
    - gcc-5
    - g++-5
    - clang

compiler:
  - gcc
  - clang

install:
# Use g++5.4 and not 4.6 (C++11 missing)
  - if [ "$CXX" = "g++" ]; then export CXX="g++-5" CC="gcc-5"; fi

一切都很好。我没有看到Coverity运行或上传任何内容。我在travis中使用未加密的令牌添加了“ COVERITY_SCAN_TOKEN”环境变量。构建日志在这里:https://travis-ci.org/tinverse/tsm/jobs/509506031。我得到一个最终的“命令“ ./configure && make && make test”,退出为0。“ travis-ci构建日志中的消息,就是这样!不知道我在做什么错。

更新: 从构建日志中:

depth=1 C = BE, O = GlobalSign nv-sa, CN = GlobalSign CloudSSL CA - SHA256 - G3
verify error:num=20:unable to get local issuer certificate
verify return:0
DONE

但是,将CApath选项添加到.travil.yml中的openssl命令之后 在脚本的before_install部分中,看到了

echo -n | openssl s_client -CApath /etc/ssl/certs/ -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-certificates.crt
depth=2 C = BE, O = GlobalSign nv-sa, OU = Root CA, CN = GlobalSign Root CA
verify return:1
depth=1 C = BE, O = GlobalSign nv-sa, CN = GlobalSign CloudSSL CA - SHA256 - G3
verify return:1
depth=0 C = US, ST = Delaware, L = Dover, O = Incapsula Inc, CN = incapsula.com
verify return:1
DONE

那么,这里的非零回报意味着成功吗?不过,查看travis-ci构建日志,我认为没有运行Coverity扫描。

1 个答案:

答案 0 :(得分:0)

我的分支称为Feature / coverity_scan,我认为branch_pattern:Coverity_scan可以工作。它没。将我的分支重命名为Coverity_scan之后,它就起作用了。

此外,在.travis.yml文件中添加dist:xenial可以消除证书错误。