如何在GitHub中连接Coveralls和Travis?

Gre*_*reg 7 github travis-ci coveralls

我目前在公共GitHub回购中使用TravisCI构建PR.Coveralls的说明将其放在.coveralls.yml文件中:

service_name: travis-pro
repo_token: <my_token>
Run Code Online (Sandbox Code Playgroud)

这对我不起作用,因为.coveralls.yml文件是公开的 - 检查到GitHub.我的TravisCI被集成到我的GitHub回购连接到分支机构并在PR上激活.

所以我尝试了这个:

在TravisCI的网站中,我设置了一个环境var:

COVERALLS_REPO_TOKEN到我的令牌的值.

然后修改我的.travis.yml看起来像这样:

language: scala
scala:
   - 2.11.7
notifications:
  email:
    recipients:
      - me@my_email.com
jdk:
  - oraclejdk8
script: "sbt clean coverage test"
after_success: "sbt coverageReport coveralls"
script:
  - sbt clean coverage test coverageReport &&
    sbt coverageAggregate
after_success:
  - sbt coveralls
Run Code Online (Sandbox Code Playgroud)

现在,当我在分支上创建一个PR时,运行正常 - 没有错误,我在Travis的控制台中看到了覆盖测试运行和生成文件的输出.但是当我去工作服时我什么都没看到 - "这个回购没有构建."

我怎么设置它?

编辑:我也尝试用service_name: travis-ci 无骰子创建一个.coveralls.yml ,遗憾的是.

Jen*_*och 14

我怎么设置它?

第1步 - 启用工作服

首先要做的是为您的存储库启用Coveralls.

你可以在他们的网站http://coveralls.io上做到这一点:

  • 转到http://coveralls.io
  • 使用您的GitHub凭据登录
  • 点击"存储库",然后"添加回购"
    • 如果没有列出回购,那么"Sync GitHub Repos"
  • 最后,将"启用工作服"开关翻到"开"

在此输入图像描述

第2步 - 设置Travis-CI将覆盖范围信息推送到Coveralls

您的.travis.yml文件包含scriptafter_success部分的多个条目.所以,让我们清理一下:

language: scala
scala:    2.11.7
jdk:      oraclejdk8

script: "sbt clean coverage test"

after_success: "sbt coveralls"

notifications:
  email:
    recipients:
      - me@my_email.com
Run Code Online (Sandbox Code Playgroud)

现在,当您按下时,脚本部分中的命令将被执行.这是您生成的覆盖率数据.

命令成功完成后,执行after_success部分.这是将覆盖数据推送到工作服.

.coveralls配置文件

.coveralls文件仅用于:

  • 公共Travis-CI repos不需要此配置文件,因为Coveralls可以通过其API获取信息(通过访问令牌交换)
  • repo_token(上工作服回购页面上找到)时,才需要私人回购协议,并应当保密.如果您发布它,那么任何人都可以为您的回购提交一些覆盖数据.

归结为:仅在两种情况下需要该文件:

  • 为包含coverage数据的文件指定自定义位置
  • 或者当您使用Travis-Pro和私人存储库时.然后你必须配置"travis-pro"并添加令牌:

    service_name: travis-pro
    repo_token: ...
    
    Run Code Online (Sandbox Code Playgroud)