如何使用 TravisCI 在 GitHub 上设置 Coverity Scan?
How to setup Coverity Scan on GitHub with TravisCI?
我已经成功设置 TravisCI for my C++ hosted on Github project,它工作正常。
我想继续使用 Coverity Scan.
对我的 C++ 代码进行静态分析
可以使用 TravisCI 自动上传到 Scan Coverity,但我找不到让它工作的方法。
我的git仓库很简单,有两个分支:master
和coverity_scan
。
为了避免在每次推送时触发静态分析,所有与 Scan Coverity 相关的内容都填写在 coverity_scan
分支:
language: cpp
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: "UEHXnbNPk49F6Ta/+d+UZl74EhtIevExwCo1l6qBndw+LvIXQDNSfsFiIJsZVfSgacBEOtd7CSY6rtccDpGeS9oX5/G/pnCz/2Cu+NOCCWlpy/S3qcUtdz52nMVatTgRhEi14WfrghpHk7nxxSi1W5+VIBfew+In11V1Xln3W06hhGOOK17Ljik18LbjSY1K9yVwK60r3tzwzSBMm/MArsqCeigzw15c0THQUtLlaLg/5nfP31f1QV9W1WlF4zIHjzd0970M385vNDDPyG+qRCfMPDEJrWb9/hJVi5x2poHLDObSE25rSQqfzc5nfiSDbH888mkdbBZXSwMVveVEhufyEk0nxI0Tddh/WNYFs+7g1gyV9409Tj288Omx++zpb0jM7/++wgkRwvBnqfBN7GWxoZJ9rHTxauJ+IIOR1jvskCTFMFMLI3C1+IpT4SgV0i6v2PtRsdGbXgI9qywhmPEjC+lS6Nu/rZQItr27rZowvw1ITYwJrDX4YQOAZxJkYNLFdGfqEMSjx0nfq6Kpl/4PaHQ7X0OtnJNgssMk3LNcYEwV1tLhTt+qODONjB7yWilcsWo8yVurr4vnFS2nIV7N4XgBvJcZHWfovxiQhfJU2UQxDvCYlDJ0RpM8kxpze+LR2vh+BbYOgPcr7YKG9MoAbsQXDGiF7yTz1VjVQr4="
addons:
coverity_scan:
project:
name: LeFlou/Citadel
build_command_prepend: "cmake"
build_command: "make"
branch_pattern: coverity_scan
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-4.8
- g++-4.8
- clang
compiler:
- gcc
- clang
before_script:
- cmake .
script:
- make
install:
# Use g++4.8 and not 4.6 (C++11 missing)
- if [ "$CXX" = "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi
branches:
only:
- coverity_scan
我只想在推送到 coverity_scan
时触发静态分析,而不是在 TravisCI 上构建。
但是,持续集成必须在 master
分支上工作。
目前,代码仅构建但从未上传到 Coverity Scan
。
我的配置有什么问题?
编辑:
我注意到 TravisCI validator 多个插件生成错误,只处理最后一个条目。另一方面,coverity_scan
似乎可以轻松构建(我需要 apt 安装更新版本的 g++,这与 C++11 功能有关)。
编辑 20150910:
我合并了两个 addons
部分,这有效。
但我仍然停留在 "Submitted first build" 步骤。
我也更改了 COVERITY_SCAN_TOKEN,但仍然没有将构建提交到 Coverity Scan
TravisCI build with these changes
我认为问题可能在于您在此处将您正在使用的分支指定为 coverity_scan
:
branch_pattern: coverity_scan
但是你说你要推送到分支scan_coverity
。所以您可能想尝试推送到 coverity_scan
?
我认为您的问题出在 build_command_prepend
,是 cmake .
而不是 cmake
。
我也遇到了麻烦,但最终成功了。
首先转到 Coverity 中的“项目设置”。复制令牌
然后运行:
travis encrypt -r <coverity_project_name> COVERITY_SCAN_TOKEN=<token>
对于“coverity_project_name”,请使用 Coverity 仪表板中显示的名称。
您需要将'travis encrypt'生成的密钥放入“安全”字段。所以你应该结束这样的事情:
- os: linux
dist: bionic
compiler: gcc
env:
- secure: "key generated by travis -r"
before_install:
- echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-
addons:
coverity_scan:
project:
name: "theimpossibleastronaut/rmw"
description: "Console recycle bin written in C"
notification_email:
build_command_prepend: "./configure"
build_command: "make"
branch_pattern: coverity_scan
我已经成功设置 TravisCI for my C++ hosted on Github project,它工作正常。
我想继续使用 Coverity Scan.
对我的 C++ 代码进行静态分析
可以使用 TravisCI 自动上传到 Scan Coverity,但我找不到让它工作的方法。
我的git仓库很简单,有两个分支:master
和coverity_scan
。
为了避免在每次推送时触发静态分析,所有与 Scan Coverity 相关的内容都填写在 coverity_scan
分支:
language: cpp
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: "UEHXnbNPk49F6Ta/+d+UZl74EhtIevExwCo1l6qBndw+LvIXQDNSfsFiIJsZVfSgacBEOtd7CSY6rtccDpGeS9oX5/G/pnCz/2Cu+NOCCWlpy/S3qcUtdz52nMVatTgRhEi14WfrghpHk7nxxSi1W5+VIBfew+In11V1Xln3W06hhGOOK17Ljik18LbjSY1K9yVwK60r3tzwzSBMm/MArsqCeigzw15c0THQUtLlaLg/5nfP31f1QV9W1WlF4zIHjzd0970M385vNDDPyG+qRCfMPDEJrWb9/hJVi5x2poHLDObSE25rSQqfzc5nfiSDbH888mkdbBZXSwMVveVEhufyEk0nxI0Tddh/WNYFs+7g1gyV9409Tj288Omx++zpb0jM7/++wgkRwvBnqfBN7GWxoZJ9rHTxauJ+IIOR1jvskCTFMFMLI3C1+IpT4SgV0i6v2PtRsdGbXgI9qywhmPEjC+lS6Nu/rZQItr27rZowvw1ITYwJrDX4YQOAZxJkYNLFdGfqEMSjx0nfq6Kpl/4PaHQ7X0OtnJNgssMk3LNcYEwV1tLhTt+qODONjB7yWilcsWo8yVurr4vnFS2nIV7N4XgBvJcZHWfovxiQhfJU2UQxDvCYlDJ0RpM8kxpze+LR2vh+BbYOgPcr7YKG9MoAbsQXDGiF7yTz1VjVQr4="
addons:
coverity_scan:
project:
name: LeFlou/Citadel
build_command_prepend: "cmake"
build_command: "make"
branch_pattern: coverity_scan
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-4.8
- g++-4.8
- clang
compiler:
- gcc
- clang
before_script:
- cmake .
script:
- make
install:
# Use g++4.8 and not 4.6 (C++11 missing)
- if [ "$CXX" = "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi
branches:
only:
- coverity_scan
我只想在推送到 coverity_scan
时触发静态分析,而不是在 TravisCI 上构建。
但是,持续集成必须在 master
分支上工作。
目前,代码仅构建但从未上传到 Coverity Scan
。
我的配置有什么问题?
编辑:
我注意到 TravisCI validator 多个插件生成错误,只处理最后一个条目。另一方面,coverity_scan
似乎可以轻松构建(我需要 apt 安装更新版本的 g++,这与 C++11 功能有关)。
编辑 20150910:
我合并了两个 addons
部分,这有效。
但我仍然停留在 "Submitted first build" 步骤。
我也更改了 COVERITY_SCAN_TOKEN,但仍然没有将构建提交到 Coverity Scan
TravisCI build with these changes
我认为问题可能在于您在此处将您正在使用的分支指定为 coverity_scan
:
branch_pattern: coverity_scan
但是你说你要推送到分支scan_coverity
。所以您可能想尝试推送到 coverity_scan
?
我认为您的问题出在 build_command_prepend
,是 cmake .
而不是 cmake
。
我也遇到了麻烦,但最终成功了。
首先转到 Coverity 中的“项目设置”。复制令牌
然后运行:
travis encrypt -r <coverity_project_name> COVERITY_SCAN_TOKEN=<token>
对于“coverity_project_name”,请使用 Coverity 仪表板中显示的名称。
您需要将'travis encrypt'生成的密钥放入“安全”字段。所以你应该结束这样的事情:
- os: linux
dist: bionic
compiler: gcc
env:
- secure: "key generated by travis -r"
before_install:
- echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-
addons:
coverity_scan:
project:
name: "theimpossibleastronaut/rmw"
description: "Console recycle bin written in C"
notification_email:
build_command_prepend: "./configure"
build_command: "make"
branch_pattern: coverity_scan