Автоматизация сборки и развертывания приложений. Gitlab CI.
0. Схема стенда
1. Подготовка репозитория
Сделайте форк репозитория: https://gitlab.resds.ru/itt/sample-project
2. Подготовка раннера
- Перейдите в настройки проекта
- Перейдите в настройки CI/CD
- Разверните пункт отвечающий за раннеры и нажмите
New project runner
- Введите данные для раннера и добавьте теггов которые будут как-то обозначать общие признаки раннеров
- Нажмите
Create Runner
- Перейдите на узел в котором должен будет работать раннер и установите его
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
sudo chmod +x /usr/local/bin/gitlab-runner
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
Задание
- Создайте новую ветку
feature/ci-cd
- В новой ветке создайте многоуровневый
.gitlab-ci.yml
- Статическое тестирования кода(прогнать линтерами код)
- Сборка контейнеров и отправка в gitlab-registry
- Запуск собранного приложения с использованием ранее загруженного образа
- Добавьте еще один раннер
- Добавьте деплой на еще один сервер
- С помощью тегов сделайте деплой на 2 узла при запуске
- Повторяющийся код уберите с помощью
Anchors
- Установите зависимости между запускаемыми шагами
- Разделите запуск между узлами
- Разделите 2 узла по ролям:
-
dev
-
prod
-
- Запуск на
prod
осуществляется вручную после успешного наdev
- Разделите 2 узла по ролям:
- Смерджите ветку в
main