我想为一个开源项目(具体来说, this one )做出贡献,项目所有者已经在该项目中设置了 Travis。我想将 Coveralls 集成到该项目中并发送拉取请求。当我拥有该项目时,过程很简单:
- 使用
.travis.yml
和特定于语言的工具配置构建/测试系统 - 从工作服中获取
repoToken
- 将
repoToken
作为环境变量添加到项目的 Travis 系统 - 将特定于语言的配置添加到
.travis.yml
的after_success
周期中。
但是,当我不拥有存储库时,我会遇到问题。
- 由于我不拥有该存储库,因此我只能使用我的 fork 副本在 Coveralls 上添加项目。我的意思是,我的 fork 的覆盖 URL 将是 Coveralls 中的
/github/myusername/forkedrepo
,当我将该 PR 发送给存储库所有者时,它将是相同的,但它必须是/github/ownersusername/originalrepo
. - 我无法将环境变量
repoToken
添加到所有者的 Travis 构建系统,因为我不拥有它。
所以我的问题是:
- 是否可以使该过程自动化?比如将我的 fork Travis 系统合并到所有者的原始系统中以获取
repoToken
环境变量和/或为所有者创建一个 Coveralls 系统? - 或者我应该直接联系所有者,自己为我的 fork 项目创建单独的 Travis/Coveralls,并在代码库中留下一些待办事项,以便他可以找到这些并稍后进行更改?
提前致谢。
环境
- Java
- Maven
- 用于覆盖的 Covertura Maven 插件
- Coveralls Maven 插件,用于将覆盖率结果发送到 Coveralls
最佳答案
您可能需要根据您想要使用的覆盖率工具修改您自己的 pom.xml,请参阅 https://github.com/trautonen/coveralls-maven-plugin一些解释。
您可以避免将 repo token 放入您在 github 上发布的 pom.xml 文件中!
您可以从命令行运行覆盖率报告。
这是一个小帮助程序脚本,允许从命令行运行 converalls。只需将您的 token 放在 $HOME/.coveralls 或任何类似位置之类的位置即可。
#!/bin/bash
# WF 2019-06-26
# create test coverage report for coveralls
tokenpath=$HOME/.coveralls/coveralls.token
if [ ! -f $tokenpath ]
then
echo "Script needs coveralls token in $tokenpath to work" 1>&2
echo "Script can only be run successfully by project admins" 1>&2
echo "see https://github.com/trautonen/coveralls-maven-plugin" 1>&2
exit 1
else
token=$(cat $tokenpath)
# comment out to use jacoco
#mvn clean test jacoco:report coveralls:report -D jacoco=true -DrepoToken=$token
# comment out to use cobertura
mvn cobertura:cobertura coveralls:report -DrepoToken=$token
fi
更新 这是使用 COVERALLS_TOKEN 环境变量的版本:
#!/bin/bash
# WF 2019-06-26
# create test coverage report for coveralls
# is the environment variable not set?
if [ "$COVERALLS_TOKEN" = "" ]
then
tokenpath=$HOME/.dukes/coveralls.token
if [ ! -f $tokenpath ]
then
echo "Script needs coveralls token in $tokenpath to or COVERALLS_TOKEN environment variable to work" 1>&2
echo "Script can only be run successfully by project admins" 1>&2
echo "see https://github.com/trautonen/coveralls-maven-plugin" 1>&2
echo "see https://stackoverflow.com/a/56815300/1497139" 1>&2
exit 1
fi
else
export COVERALLS_TOKEN=$(cat $tokenpath)
fi
# the jacoco variable tries triggering a profile - check your pom.xml
# for any profile being in use
mvn clean test jacoco:report coveralls:report -D jacoco=true
#mvn clean test jacoco:report coveralls:report -D jacoco=true -DrepoToken=$token
#mvn cobertura:cobertura coveralls:report
#mvn cobertura:cobertura coveralls:report -DrepoToken=$COVERALLS_TOKEN
关于java - 如何将连体衣集成到开源项目中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52628775/