Как я могу соединить комбинезоны и Трэвис в GitHub?

В настоящее время TravisCI использует PR в публичном репозитории GitHub. Инструкции для Coveralls говорят, чтобы поместить это в файл.coveralls.yml:

service_name: travis-pro
repo_token: <my_token>

Это не работает для меня, потому что файл.coveralls.yml будет общедоступным - зарегистрирован в GitHub. Мой TravisCI интегрирован в репозиторий GitHub, подключенный к филиалу, и запускает PR.

Итак, я попробовал это:

На сайте TravisCI я установил переменную окружения:

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, что тест покрытия запускался и генерировал файлы. Но когда я иду в Coveralls, я ничего не вижу -"Для этого репо не было сборок".

Как я могу настроить это?

РЕДАКТИРОВАТЬ: Я также попытался создать.coveralls.yml только с service_name: travis-ciК сожалению, нет.

1 ответ

Как я могу настроить это?

Шаг 1 - Включить комбинезоны

Первое, что нужно сделать, это включить Coveralls для вашего хранилища.

Вы можете сделать это на их сайте http://coveralls.io/:

  • перейти к http://coveralls.io/
  • войдите под своими учетными данными GitHub
  • нажмите "Репозитории", затем "Добавить репо"
    • если репозитория еще нет в списке, тогда "Sync GitHub Repos"
  • наконец, установите переключатель "Включить комбинезон" в положение "Вкл."

введите описание изображения здесь

Шаг 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 Файл нужен только для:

  • Общедоступным репозиториям Travis-CI этот конфигурационный файл не нужен, поскольку Coveralls могут получать информацию через свой API (через обмен токенами доступа)
  • repo_token (находится на странице репозитория на Coveralls) необходим только для частных репозиториев и должен храниться в секрете. Если вы опубликуете его, то любой может предоставить некоторые данные покрытия для вашего репо.

Сводится к: файл нужен только в двух случаях:

  • указать свое местоположение для файлов, содержащих данные покрытия
  • или когда вы используете Travis-Pro и частные репозитории. Затем вы должны настроить "travis-pro" и добавить токен:

    service_name: travis-pro
    repo_token: ...
    

Я подумал, что было бы полезно объяснить, как настроить это для PHP, учитывая, что этот вопрос в основном относится к любому языку, который поддерживает Coveralls (и не только к Lua).

Этот процесс особенно неуловим для PHP, поскольку ссылка PHP на веб-сайте Travis-CI указывает на защищенную паролем страницу на сайте Coveralls, которая не предоставляет средств для входа в систему с помощью GitHub, в отличие от основного сайта Coveralls.

Не менее запутанным является то, что основная страница PHP на сайте Coveralls, кажется, содержит слишком сложные инструкции, для которых требуется еще одна библиотека под названием atoum/atoum (который выглядит несуществующим) и совсем не полный.

То, что в итоге отлично работает для меня, это https://github.com/php-coveralls/php-coveralls/. Документация очень тщательная, но сводится к следующему:

  1. Включите Coveralls для своего хранилища (см. Шаг 1 в разделе "Принятый ответ").

  2. Убедиться, что xdebug устанавливается и включается в PHP в вашей среде сборки Travis-CI (это должно быть по умолчанию), что требуется для поддержки покрытия кода в PHPUnit.

  3. добавлять phpunit и php-coveralls библиотеки к проекту с Composer:

composer require phpunit/phpunit php-coveralls/php-coveralls
  1. Обновить 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
  1. Создайте .coveralls.yml в корне проекта и заполните его:
service_name: travis-ci

Я не уверен, что этот шаг необходим для публичных репозиториев (принятый ответ подразумевает, что это не так), но php-coveralls Документация говорит об этой директиве (выделено мной):

service_nameПозволяет указать, где Coveralls должен искать дополнительную информацию о ваших сборках. Это может быть любая строка, но использование travis-ci или travis-pro позволит Coveralls извлекать данные о филиалах, комментировать запросы на извлечение и многое другое.

  1. Внесите вышеуказанные изменения в удаленный репозиторий на GitHub и запустите сборку Travis-CI (если у вас еще нет хуков, чтобы это произошло автоматически).

  2. Шлепни Coveralls значок покрытия кода в вашем README (или где бы вы ни хотели). Необходимая разметка может быть найдена на странице Coveralls для соответствующего репозитория в столбце Badge.

Другие вопросы по тегам