Статьи

PHP и непрерывная интеграция с Travis CI

Непрерывная интеграция (CI) позволяет команде быстро фиксировать свою работу, а это означает, что ежедневно в хранилище будет несколько коммитов. Каждый раз, когда происходит фиксация, она проверяется автоматической сборкой (включая тестирование), чтобы немедленно предупредить вас о любых ошибках сборки или тестирования. Как только процесс интеграции и проверки вашей работы в мастере станет автоматическим, вы сможете быстро разработать связное программное обеспечение.

Что такое Трэвис CI?

Travis CI автоматически настраивает среду CI и позволяет любому легко тестировать и развертывать свое приложение. Их система сборки поддерживает много разных языков, вам просто нужно определить, на каком языке этот проект, а Travis CI позаботится обо всем остальном. Вы можете найти больше информации обо всех других средах, которые они предлагают, в своих документах , но в этой статье мы сосредоточимся на добавлении Travis CI в репозиторий PHP на GitHub.

Общедоступные репозитории на Github могут использовать Travis CI бесплатно, но они используют общие блоки сообщества и находятся в очередях. Чтобы использовать частный репозиторий с Travis CI, вы можете подписаться на один из их планов и создать свой проект без ожидания, плюс у вас может быть одновременная работа.

Примечание. Сайт с открытым исходным кодом оканчивается на «.org» ( https://travis-ci.org/ ), а сайт частного репозитория заканчивается на «.com» ( https://travis-ci.com/ ).

Начало работы с Travis CI

Чтобы следовать, просто разветвите этот репозиторий. Пожалуйста, не стесняйтесь менять файлы и смотрите, что делают настройки.

Шаг 1: Войти

Войдите в Travis CI с помощью учетной записи GitHub, нажав ссылку « Войти» в правом верхнем углу.

На этой странице вы увидите список создаваемых общедоступных репозиториев. Чтобы посмотреть их сборку в прямом эфире, просто нажмите один из них.

Шаг 2. Синхронизируйте ваши репозитории на GitHub

После того, как вы войдете в систему, Travis CI синхронизирует ваши общедоступные репозитории с вашей учетной записью на странице вашего профиля . Затем вам нужно будет нажать кнопку переключения в положение «Вкл.». Теперь каждый раз, когда вы фиксируете этот репозиторий, GitHub будет вызывать Travis CI и автоматически запускать процесс сборки.

Если вы создали репозиторий и не видите его в списке, нажмите « Синхронизировать сейчас» на странице своего профиля, и там появится ваш вновь созданный репозиторий.

Шаг 3: Добавьте файл .travis.yml в свой репозиторий.

Чтобы сообщить Travis CI, в каких средах вы хотите, чтобы ваш репозиторий был создан и протестирован, вам нужно добавить .travis.yml Travis CI выполнит ваши тесты на основе матрицы всех возможных комбинаций вашей конфигурации, используя:

  • Время выполнения вы указали под php
  • Переменные окружения, которые вы определяете с помощью env
  • Исключения, включения и допустимые сбои

Узнайте больше о матрицах сборки

 # Required to run your project under the correct environment.
language: php

# Versions of PHP you want your project run with.
php:
  - 5.4
  - 5.5
  - 5.6
  - hhvm

# Commands to be run before your environment runs.
before_script:
  - composer self-update
  - composer install --prefer-source --no-interaction --dev

# Commands you want to run that will verify your build.
script: phpunit

# allow_failures: Allow this build to fail under the specified environments.
# fast_finish: If your build fails do not continue trying to build, just stop.
matrix:
  allow_failures:
    - php: 5.6
    - php: hhvm
  fast_finish: true

# Customize when the notification emails are sent.
notifications:
    on_success: never
    on_failure: always

Пример конфигурации

Узнайте больше о параметрах PHP .travis.yml

Шаг 4: запустить сборку с помощью Git Push

Ваша первая сборка должна быть инициирована коммитом и пушом из GitHub, а не кнопкой Restart Build.

Каждый раз, когда вы помещаете коммит в ветку в вашем хранилище, Travis CI запускает процесс сборки. Как только рабочий станет доступен, он начнет строить ваш проект. Вы можете перейти по https://travis-ci.org/GITHUB_USERNAME/REPO_NAME

Если вы хотите перезапустить сборку, нажмите кнопку « Перезапустить сборку», и вы увидите, как начнется сборка проекта, когда рабочий станет доступен.

Шаг 5: настройка вашей сборки

В репозитории с примерами вы найдете файл .travis.yml Если вы хотите настроить свою конфигурацию, вы можете настроить практически все, что касается вашей среды сборки.

Узнайте больше о конфигурации PHP Travis CI .

Шаг 6: Проверьте это

Чтобы проверить, правильно ли вы сконфигурировали свой репозиторий, отредактируйте файл README.md на GitHub и зафиксируйте его. Перейдите на страницу CI Travis этого репозитория, и все кружки в разделе Job должны стать желтыми, и после начала сборки продолжительность должна увеличиться.

Когда сборка будет завершена и индикатор станет красным, щелкните по нему и прочитайте вывод в консоли. Вы также можете настроить Travis CI, чтобы он отправлял вам электронное письмо с информацией о том, что произошло, с помощью параметра notifications
Если ваша сборка не начинается, попробуйте выполнить проверку по YAML Validator, чтобы убедиться, что в вашем файле конфигурации нет ошибок.

Учить больше

Работники Travis CI предоставляют множество различных услуг, от которых вы можете зависеть, и для них есть руководства.

Изображения статуса сборки

Travis CI предоставляет изображение статуса, которое вы можете поместить в README вашего проекта или в общую документацию. Затем посетители могут сразу увидеть его статус сборки.

Вот изображение статуса из примера репозитория. Надеюсь, сейчас он зеленый.

Build Status

 Travis CI PHP Example
===========

[![Build Status](https://travis-ci.org/clouddueling/travis-ci-php-example.svg?branch=master)](https://travis-ci.org/clouddueling/travis-ci-php-example)

Формат URL изображения:
https://travis-ci.org/USERNAME/REPO_NAME.svg?branch=BRANCH_NAME

Краткая информация

Текущий

Все сборки, которые вы определили с опциями конфигурации, будут отображаться здесь с цветным значком рядом с ними, отмечая их статус сборки.

  • Пустой экран: вы еще не запустили свою первую сборку
  • Желтый: в процессе
  • Красный: ошибка, проверьте консоль
  • Зеленый: Успех!

История сборки

Каждый раз, когда запускается сборка, она получает номер сборки и создает историю, в которой вы можете увидеть, какой коммит вызвал сборку, ссылку на коммит на GitHub, продолжительность сборки и когда это произошло.

Тянуть запросы

Чтобы дать руководителям проектов четкое представление о том, нарушит ли пулл-запрос вашу сборку, Travis CI автоматически строит ваш проект по этому пул-запросу и показывает его статус в PR.

Сводка по филиалам

Travis CI собирает не только вашу основную ветку, но и все остальные ветви, а Сводка ветвей сообщает вам текущее состояние сборки каждой из них.

Вывод

Как вы можете видеть, Travis CI — это надежный и многофункциональный сервис, направленный на поддержание ваших проектов и реализацию любого и всех вкладов. Вы реализовали это в своих проектах? Есть трюки, чтобы поделиться? Дайте нам знать!