如何设置Travis / Rails项目提交给Coverity Scan?

时间:2016-09-14 00:05:09

标签: ruby-on-rails travis-ci coverity

我正在为rails应用程序寻找std travis coverity设置。

我当前的.travis.yml文件如下所示:

# environment settings
env:
  - DB=sqlite
  - DB=mysql
  - DB=postgresql
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: "<SECURE>"

# project language
language: ruby
rvm:
  - 2.3.1

# branches to build (whitelist)
branches:
  only:
    - master
    - coverity_scan
    - testing

# command to run before install
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-

# arguments for the bundler
bundler_args: --without production development

# addons
addons:
  coverity_scan:
    project:
      name: "<PROJECT_NAME>"
      description: "Build submitted via Travis CI"
    notification_email: <MY_EMAIL>
    build_command_prepend: ""
    build_command: "--no-command"
    branch_pattern: coverity_scan

# script
script:
  - RAILS_ENV=test bundle exec rake db:migrate --trace
  - bundle exec rake db:test:prepare
  - bundle exec rspec spec/
  - bundle exec cucumber

# run before script
before_script:
  - mysql -e 'create database my_app_test'
  - psql -c 'create database my_app_test' -U postgres

我不确定在build_command的{​​{1}}部分放置什么。我已经尝试将其留空,addons.coverity_scan--no-commandbundle install,但它们都没有效果。例如,bundle install --jobs=3 --retry=3给了我以下信息:

--no_command

因为我正在使用travis,我无法查看日志文件...

当命令为空时,它会因错误而失败,需要给出一个命令并且它什么都不做。

有人可以帮助我使用某种类型的rails应用程序设置吗?

提前致谢!

3 个答案:

答案 0 :(得分:2)

Coverity 8.5支持Ruby。没有日志就很难调试这个。 SCAN工具包可能缺少Ruby的配置,可以通过运行cov-configure --ruby来修复。

然而,更可能的问题是,Ruby是Coverity认为&#34;非编译的&#34;语言(意思是你通常没有一个可以在使用之前编译它们的构建版本)。所以这意味着您需要通知cov-build Ruby文件的位置。查看您的travis配置,我希望您需要将其添加到build_command--fs-capture-search /path/to/your/ruby/files

答案 1 :(得分:2)

使用Coverity SCAN的说明8.5支持的新语言可在此处找到:https://scan.coverity.com/download?tab=other。我们假设用户在尝试TravisCI集成之前首先阅读这些说明。强烈建议在尝试任何CI之前测试本地集成以确保清除捕获。

答案 2 :(得分:0)

似乎无法分析rails(一般解释的)项目(如果我错了,请纠正我)。我从封面上删除了我的项目。