2

我想为项目所有者已经设置 Travis的开源项目(特别是这个)做出贡献。我想将工作服集成到这个项目中并发送一个拉取请求。当我拥有该项目时,过程很简单:

  • .travis.yml使用特定于语言的工具配置构建/测试系统
  • repoToken从工作服中取出
  • 作为环境变量添加repoToken到项目的 Travis 系统
  • 将语言特定配置添加到.travis.yml'safter_success循环。

但是,当我不拥有存储库时,我遇到了问题。

  • 由于我不拥有存储库,因此我只能使用我的 fork 副本在 Coveralls 上添加项目。我的意思是,我的 fork 的覆盖 URL 将/github/myusername/forkedrepo在 Coveralls 中,当我将该 PR 发送给存储库所有者时,它将是相同的,而它必须是/github/ownersusername/originalrepo.
  • 我无法将环境变量添加repoToken到所有者的 Travis 构建系统,因为我不拥有它。

所以我的问题是:

  • 是否有可能使这个过程自动化?就像将我的分叉 Travis 系统合并到所有者的原始系统以获取repoToken环境变量和/或为所有者创建工作服系统?
  • 还是我应该简单地联系所有者,自己为我的分叉项目创建单独的 Travis/Coveralls,并在代码库中留下一些待办事项,以便他可以找到这些并在以后进行更改?

提前致谢。


环境

  • 爪哇
  • 马文
  • Covertura Maven 插件用于覆盖
  • Coveralls Maven 插件,用于将覆盖结果发送到 Coveralls
4

1 回答 1

2

您可能想根据您想要使用的覆盖工具修改自己的 pom.xml,请参阅https://github.com/trautonen/coveralls-maven-plugin以获得一些解释。

您可以避免将 repo 令牌放在您在 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 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
于 2019-06-29T05:33:14.287 回答