Как интегрировать комбинезоны в проект с открытым исходным кодом? - PullRequest
0 голосов
/ 03 октября 2018

Я хочу внести свой вклад в проект с открытым исходным кодом (в частности, этот ), где владелец проекта уже настроил Travis.Я хочу интегрировать Coveralls в этот проект и отправить pull-запрос.Когда я владею проектом, процесс прост:

  • Настройка системы сборки / тестирования с .travis.yml и инструментами, специфичными для языка
  • Возьмите repoToken из Coveralls
  • Добавить repoToken в качестве переменной среды в систему Travis проекта
  • Добавить специфическую для языка конфигурацию в after_success цикл .travis.yml.

Однако у меня возникли проблемы сэто, когда я не владею хранилищем.

  • Поскольку я не являюсь владельцем репозитория, я могу добавить проект на Coveralls только с моей копией форка.Я имею в виду, что URL покрытия моего форка будет /github/myusername/forkedrepo в Coveralls, и когда я отправлю этот PR владельцу хранилища, он будет таким же, тогда как он должен быть /github/ownersusername/originalrepo.
  • Я не могу добавить переменную средыrepoToken к системе сборки Travis владельца, поскольку я не являюсь ее владельцем.

Итак, мои вопросы:

  • Возможно ли автоматизировать этот процесс?Как слияние моей разветвленной системы Travis с исходной системой владельца для repoToken переменной среды и / или создание системы Coveralls для владельца?
  • Или я должен просто связаться с владельцем, создать отдельную Travis / Coveralls для моего разветвленного проектая и оставлю некоторые задачи в кодовой базе, чтобы он мог найти их и изменить позже?

Заранее спасибо.


Среда

  • Java
  • Maven
  • Плагин Covertura Maven для покрытия
  • Плагин Coveralls Maven для отправки результатов покрытия в Coveralls

1 Ответ

0 голосов
/ 29 июня 2019

Возможно, вы захотите изменить свой собственный файл pom.xml в соответствии с инструментом покрытия, который вы хотели бы использовать, см. https://github.com/trautonen/coveralls-maven-plugin для некоторых объяснений.

Вы можете не ставитьТокен репо в файле pom.xml, который вы публикуете на github!

Вместо этого вы можете запустить отчет о покрытии из командной строки.

Вот небольшой вспомогательный скрипт, который позволит запускать комбинезоны из командной строки.Просто поместите свой токен в такое место, как $ 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
...