Настраиваем Gitlab CI/CD
KangarooЧто такое CI/CD? Говоря простыми словами это возможность настроить автодеплой вашего проекта сразу на сервере!
Как это работает? Говоря простым языком работает все достаточно просто: В проект добавляется файл конфигурации. При каждом пуше если GitLab видит в ветке такой файл то автоматически запускает сборку проекта по описанному в нем алгоритму. В разных ветках можно делать разные файлы конфигурации! Остальную инфу о том как работает CI/CD можно найти в документации!
Приступим к практике!
Для примера мы будем настраивать CI/CD во Vue.js проекте на сервере Ubuntu 18.04:
- Нам нужно установить GitLab Runner на нашем сервере.
Для этого выполним следующие команды:
Обновим пакеты: sudo apt-get update
Установим раннер: sudo apt-get install gitlab-runner
Запустим его: sudo gitlab-runner start - Теперь нужно зарегистрировать раннер:
Для начала зайдем в Настройки проекта - CI/CD и откроем вкладку Runners (Бегуны) там будет нужная нам информация для регистрации.
Выполним команду: sudo gitlab-runner register
Далее следуем инструкции:
- выбор адреса сервера: адрес указан во вкладке Runners.
- регистрационный ключ: так же находится во вкладке Runners.
- описание.
- ввод тегов.
- тип запуска раннера: мы будем использовать shell. - Проверим работу раннера:
Выполним команду: gitlab-runner status
Ели статус будет +- таким "gitlab-runner: Service is running!" то мы все сделали правильно!
Если перейти в настройки проекта то в Runners появится наш Runner.
Далее следует отключить общие раннеры в проекте нажав на "Enable shared runners for this project". - Создадим инструкцию для деплоя:
В корне проекта создадим файл .gitlab-ci.yml с содержимым как на фото ниже. Тут стоит подробнее остановится на блоке script. По умолчанию при использовании раннера проект загружается на сервер в специальную папку которую создал gitlab-runner. По этому используя rsync мы скопируем проект в новую папку и там уже сделаем билд.
На этом все:
Описав скрипт можно попробовать запушить проект.
Статус выполнения можно отследить в CI/Cd => Pipelines:
Выполненные деплои будут отображаться в списке:
Теперь вы сами сможете настроить автодеплой в ваших проектах!
Таким же способом вы можете настраивать автодеплой на Django и других проектах!