我目前在公共GitHub回购中使用TravisCI构建PR。 Coveralls的说明将其放在.coveralls.yml文件中:
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:
- 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
现在,当我在分支上创建一个PR时,运行正常 - 没有错误,我在Travis的控制台中看到了覆盖测试运行和生成文件的输出。但是当我去工作服时我什么都没看到 - “这个回购没有构建。”
我怎么设置它?
编辑:我也尝试用service_name: travis-ci
创建一个.coveralls.yml没有骰子,可悲的是。
我怎么设置它?
第1步 - 启用工作服
首先要做的是为您的存储库启用Coveralls。
你可以在他们的网站http://coveralls.io上做到这一点:
第2步 - 设置Travis-CI将覆盖范围信息推送到Coveralls
你.travis.yml
文件包含script
和after_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
现在,当您按下时,脚本部分中的命令将被执行。这是您生成的覆盖率数据。
命令成功完成后,执行after_success部分。这是将覆盖数据推送到工作服。
.coveralls
配置文件
.coveralls
文件只需要:
repo_token
(在工作服的回购页面上找到),应该保密。如果您发布它,那么任何人都可以为您的回购提交一些覆盖数据。归结为:仅在两种情况下需要该文件:
service_name: travis-pro
repo_token: ...
我认为解释如何为PHP设置它可能会有所帮助,因为该问题基本上适用于Coveralls支持的任何语言(而不仅仅是Lua)。
这个过程对于PHP来说尤其难以捉摸,因为PHP link on Travis-CI's website指向a password-protected page on Coveralls' site,它不提供使用GitHub登录的方法,这与主要的Coveralls网站不同。
同样令人困惑的是,primary PHP page on Coveralls' site似乎包含过于复杂的指令,需要另一个名为atoum/atoum
的库(它看起来已经不存在了)并且不完整。
最终为我完美工作的是https://github.com/php-coveralls/php-coveralls/。文档非常详尽,但归结为:
xdebug
(默认情况下应该是这样),这是PHPUnit中代码覆盖支持所必需的。phpunit
和php-coveralls
库添加到项目中:composer require phpunit/phpunit php-coveralls/php-coveralls
travis.yml
以包含以下指令:script:
- mkdir -p build/logs
- vendor/bin/phpunit tests --coverage-clover build/logs/clover.xml
after_success:
- travis_retry php vendor/bin/php-coveralls
.coveralls.yml
并使用以下命令填充:service_name: travis-ci
我并不认为这一步对于公共存储库是必要的(接受的答案暗示它不是),但是php-coveralls
文档说明了这个指令(强调我的):
service_name
:允许您指定工作服的外观,以查找有关构建的其他信息。这可以是任何字符串,但使用travis-ci或travis-pro将允许Coveralls获取分支数据,对pull请求发表评论等。
README
(或你想要的任何其他地方)中拉一个Coveralls代码覆盖徽章。可以在徽章列的相关存储库的Coveralls页面上找到所需的标记。