2016-09-15 62 views
4

我目前有一个公共GitHub回购协议的PR。 为工作服的说明说,把这个在.coveralls.yml文件:如何在GitHub中连接Coveralls和Travis?

service_name: travis-pro 
repo_token: <my_token> 

这并不适合我,因为在.coveralls.yml文件将是公共 - 签入到GitHub上。我的TravisCI集成到我的GitHub仓库中,并连接到分支机构并在PR上启动。

所以,我想这一点:

在TravisCI的站点设置环境VAR:

COVERALLS_REPO_TOKEN我的令牌值。

然后改装成我.travis.yml看起来像这样:

language: scala 
scala: 
    - 2.11.7 
notifications: 
    email: 
    recipients: 
     - [email protected]_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 

现在,当我创建的分支上的PR这运行正常 - 没有错误,我看在特拉维斯控制台覆盖输出测试运行并生成文件。但是当我去看护服时,我什么都看不到 - “这个回购没有任何建筑物。”

我该如何设置?

编辑:我也尝试创建一个.coveralls.yml只有service_name: travis-ci 没有骰子,悲伤。

回答

5

我该如何设置?

第1步 - 启用工作服

的第一件事要做的,就是让连体衣为您的存储库。

你可以在其网站上http://coveralls.io

  • http://coveralls.io
  • 使用您的GitHub的凭据
  • 点击 “库”,然后选择 “添加回购”
    • 如果回购没有列出,那么,“Sync GitHub Repos”
  • 最后,翻转 “启用工作服” 开关置于 “ON”

enter image description here

第2步 - 设置特拉维斯-CI推覆盖率的相关信息,以连身

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

language: scala 
scala: 2.11.7 
jdk:  oraclejdk8 

script: "sbt clean coverage test" 

after_success: "sbt coveralls" 

notifications: 
    email: 
    recipients: 
     - [email protected]_email.com 

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

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

.coveralls配置文件

.coveralls文件只需要:

  • 公共特拉维斯-CI回购不需要这个配置文件,因为工作服可以得到通过他们的API的信息(通过访问令牌交换)
  • repo_token(可在Coveralls的回购页面找到)仅用于私人回购,并应保密。如果你发布它,那么任何人都可以为你的回购提交一些覆盖数据。

归结起来:您需要的文件只有在两种情况下:

  • 指定自定义位置的文件包含覆盖数据
  • 或当您使用特拉维斯-Pro和私人存储库。然后,你必须配置“特拉维斯亲”,并添加标记:

    service_name: travis-pro 
    repo_token: ...