Bitbucket pipelines

Некоторое время назад на Bitbucket появилась очень интересная штука. Вкратце суть её в том, что после каждого коммита запускается docker образ в котором проходит тестирование свежего кода.

Автор . Дата: 10.01.2017

Некоторое время назад на Bitbucket появилась очень интересная штука. Вкратце суть её в том, что после каждого коммита запускается docker образ в котором проходит тестирование свежего кода. В этой статье я хочу вам показать, как можно использовать эту функцию для запуска тестов вашего Yii проекта. Конечно, это подойдет и для многих других проектов, нужно лишь немного подредактировать код.

Для начала, нужно активировать функцию Pipelines. По умолчанию она выключена.Для этого нужно в левом меню нажать Pipelines, и в небольшой демке выбрать активировать функцию. Затем мастер предложит создать и закоммитить файл bitbucket-pipelines.yml. Он заранее подготовлен для разных языков программирования. Можете создать его через мастер, и потом подредактировать, либо пропустить этот шаг и создать файл вручую в вашем репозитории.

Рассмотрим пример моего файла, который я использую во многих проектах:

image: lan143/bitbucket-pipelines-php-mysql

pipelines:
 default:
   - step:
    script:
      - service mysql start
      - mysql -h localhost -u root -proot -e "CREATE DATABASE test;"
      - composer config -g github-oauth.github.com XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      - composer install
      - codecept run

Первой строкой указывается, какой docker образ будет запускаться. По умолчанию bitbucket предлагает так себе образы, с слабым окружением, поэтому я сделал свой образ на основе образа одного француза. В образе установлен PHP7, MySQL, composer, codecept и ещё много чего другого.

Дальше описываются команды, которые будут выполняться после запуска контейнера. Тут в принципе все понятно, сначала мы запускаем MySQL, затем создаем тестовую базу, после чего указывает github oAuth key, запускаем установку зависимостей через composer и наконец запускаем тесты. 

Если все прошло удачно, то коммит пометится зеленой галочкой.

В принципе все очень просто. А плюсы от реализации в своих проектах просто колосальны. Не нужно иметь отдельный build сервер, и вы всегда сможете видеть актуальную работоспособность кода, и не выкатить на продакшен чьи-то ошибки.


comments powered by HyperComments