如何将 Coveralls 集成到开源项目中?
How do I Integrate Coveralls to An Open-Source Project?
我想为项目所有者已经设置 Travis 的开源项目(具体来说,this one)做出贡献。我想将 Coveralls 集成到这个项目中并发送拉取请求。当我拥有这个项目时,过程很简单:
- 使用
.travis.yml
和语言特定工具配置 build/test 系统
- 从工作服中拿
repoToken
- 将
repoToken
作为环境变量添加到项目的 Travis 系统
- 将特定于语言的配置添加到
.travis.yml
的 after_success
循环中。
但是,当我不拥有存储库时,我遇到了问题。
- 由于我不拥有存储库,因此我只能使用我的复刻副本在 Coveralls 上添加项目。我的意思是,我的叉子的覆盖率 URL 在 Coveralls 中将是
/github/myusername/forkedrepo
,当我将该 PR 发送给存储库所有者时,它将是相同的,但它必须是 /github/ownersusername/originalrepo
.
- 我无法将环境变量
repoToken
添加到所有者的 Travis 构建系统,因为我不拥有它。
所以我的问题是:
- 是否可以将此过程自动化?就像将我的分叉 Travis 系统合并到所有者的原始系统中,以便
repoToken
环境变量 and/or 为所有者创建工作服系统?
- 或者我应该直接联系所有者,自己为我的分叉项目创建单独的 Travis/Coveralls 并在代码库中留下一些待办事项,以便他可以找到这些并稍后更改?
提前致谢。
环境
- Java
- 行家
- 用于覆盖的 Covertura Maven 插件
- 用于将覆盖率结果发送到 Coveralls 的 Coveralls Maven 插件
您可能想根据要使用的覆盖工具修改自己的 pom.xml,请参阅 https://github.com/trautonen/coveralls-maven-plugin 了解一些解释。
您可以避免将回购令牌放在您在 github 上发布的 pom.xml 文件中!
相反,您可以从命令行 运行 覆盖率报告。
这是一个小的帮助程序脚本,它允许从命令行 运行 converalls。只需将您的令牌放在 $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 " 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
我想为项目所有者已经设置 Travis 的开源项目(具体来说,this one)做出贡献。我想将 Coveralls 集成到这个项目中并发送拉取请求。当我拥有这个项目时,过程很简单:
- 使用
.travis.yml
和语言特定工具配置 build/test 系统 - 从工作服中拿
repoToken
- 将
repoToken
作为环境变量添加到项目的 Travis 系统 - 将特定于语言的配置添加到
.travis.yml
的after_success
循环中。
但是,当我不拥有存储库时,我遇到了问题。
- 由于我不拥有存储库,因此我只能使用我的复刻副本在 Coveralls 上添加项目。我的意思是,我的叉子的覆盖率 URL 在 Coveralls 中将是
/github/myusername/forkedrepo
,当我将该 PR 发送给存储库所有者时,它将是相同的,但它必须是/github/ownersusername/originalrepo
. - 我无法将环境变量
repoToken
添加到所有者的 Travis 构建系统,因为我不拥有它。
所以我的问题是:
- 是否可以将此过程自动化?就像将我的分叉 Travis 系统合并到所有者的原始系统中,以便
repoToken
环境变量 and/or 为所有者创建工作服系统? - 或者我应该直接联系所有者,自己为我的分叉项目创建单独的 Travis/Coveralls 并在代码库中留下一些待办事项,以便他可以找到这些并稍后更改?
提前致谢。
环境
- Java
- 行家
- 用于覆盖的 Covertura Maven 插件
- 用于将覆盖率结果发送到 Coveralls 的 Coveralls Maven 插件
您可能想根据要使用的覆盖工具修改自己的 pom.xml,请参阅 https://github.com/trautonen/coveralls-maven-plugin 了解一些解释。
您可以避免将回购令牌放在您在 github 上发布的 pom.xml 文件中!
相反,您可以从命令行 运行 覆盖率报告。
这是一个小的帮助程序脚本,它允许从命令行 运行 converalls。只需将您的令牌放在 $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 " 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