Gitlab и его CI
Неделю бьюсь с Gitlab и его CI - слишком всё непривычное. Сегодня решил записать основные этапы сражений, может кому-то пригодится, да и самому полезно, а то забуду.Для начала опишу по памяти, "как всё начиналось". Но сначала задача.
Задача
Организовать процесс тестирование проекта.Проект состоит из нескольких частей: web, android, ios. В приоритете web, который на данный момент выглядит очень статически, а в перспективе к нему будет прикручен backend.
От текущего состояния к требуемому
Есть проект на nodejs, который разрабы как-то "компиляют" у себя и получают статический сайт, который по ftp выкатывают ручками на тестовый сервер.
Требуемый flow
- Разрабы пушат в git в ветку master
- Запускается сборка проекта (node install, кажется)
- Получается статический сайт - директория с файлами
- Директория заливается на стенд
- Вызываются автотесты.
- Результаты автотестов видны где-то в красивом виде.
С чего начать?
Начинать нужно с Ивана Немытченко, он даёт хорошее представление, что такое вообще gitlab CI. Как только придёт осознание, что "я всё понял", нужно принять холодный душ от Дмитрия Столярова - вот кто взрывает мозг и давит интеллектом!После вкуривания видосов я пошёл на gitlab и попытался написать свой маленький ci-скрипт. Для этого в корне репозитория нужно создать файл .gitlab-ci.yml
Кстати, при создании этого файла из web-интерфейса, будет предоставлена возможность выбрать из набора готовых темплейтов:
Откровение первое
Об этом было в видео, но всё равно:Все скрипты выполняются с помощью докер-контейнеров! Т.е. если вы напишете простое
script:
- echo "Test"
то для выполнения этого скрипта будет спулен docker-контейнер (по умолчанию ruby, если вы не указали какой-нибудь другой image). Спулен, запущен и в нём уже выполнено echo.
Откровение второе
А как же наши исходники попадут в контейнер-то? Оказывается, кроме git pull будет вызваноCloning repository...
Cloning into '/builds/...
Я не нашёл где описано, что ваш репо будет скопирован в /builds, но уверен, что это где-то описано.
Комментариев нет:
Отправить комментарий