Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuous integration: готовим и подаём к чаю

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

Continuous integration: готовим и подаём к чаю

Cичевский Олег
MobiDev Meetup, Kharkiv, Ukraine http://meetup.mobidev.com.ua/

Avatar for MobiDev Meetup

MobiDev Meetup

May 17, 2017

More Decks by MobiDev Meetup

Other Decks in Programming

Transcript

  1. О чём поговорим? • Что такое CI • Три закона

    робототехники для инструментов • Препятствия на пути к автоматизации • Преимущества проектов с CI • Установка перехватчика в Git • Команды для сбора и тестирования
  2. Три закона инструментов 1. Инструмент должен быть безопасным для использования.

    2. Инструмент должен выполнять свои функции при условии, что они не противоречат Первому Закону. 3. Инструмент должен оставаться в целости и сохранности во время его использования, если это не противоречит Первому или Второму Законам.
  3. Проблемы • Сервер контроля версий (далее GitLab) • Сервер с

    ansible ролями для ручного сбора и тестирования (далее Admin) • Выделенный сервер под CI (далее CI) • Затраты времени на поддержку работы • Человеческий фактор
  4. Git hooks Location: .git/hooks/post-receive.sh Code: #!/bin/bash while read oldrev newrev

    refname do branch=$(git rev-parse --symbolic --abbrev-ref $refname) if [ "dev" == "$branch" ]; then curl "https://api.admin.com/api/notifyGitPush?name=ci" fi done
  5. Admin команды • CiBuildServers (в crontab ~1-30m) ◦ запускает сборку

    если сервер простаивает • CiCheckServersStatus (в crontab 1m) ◦ запускает тесты если сборка прошла успешно ◦ переводит сервер в статус простоя при любом результате тестов ◦ отправляет нотификации