Skip to content

riddion72/s21_CI_CD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Basic CI/CD

Part 1. Настройка gitlab-runner

- Раз ты решил заняться CI/CD, должно быть, ты очень-очень любишь тестировать. Я тоже это люблю. Так что приступим. Если тебе потребуется какая-либо информация, рекомендую искать ответы в официальной документации.

== Задание ==

Подними виртуальную машину Ubuntu Server 22.04 LTS.

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

Скачай и установи на виртуальную машину gitlab-runner.
Запусти gitlab-runner и зарегистрируй его для использования в текущем проекте (DO6_CICD).
  • Для регистрации понадобятся URL и токен, которые можно получить на страничке задания на платформе.

Part 2. Сборка

== Задание ==

Напиши этап для CI по сборке приложений из проекта C2_SimpleBashUtils.

В файле gitlab-ci.yml добавь этап запуска сборки через мейк файл из проекта C2.
Файлы, полученные после сборки (артефакты), сохрани в произвольную директорию со сроком хранения 30 дней.

Part 3. Тест кодстайла

== Задание ==

Напиши этап для CI, который запускает скрипт кодстайла (clang-format).

Если кодстайл не прошел, то «зафейли» пайплайн.
В пайплайне отобрази вывод утилиты clang-format.

Part 4. Интеграционные тесты

== Задание ==

Напиши этап для CI, который запускает твои интеграционные тесты из того же проекта.

Запусти этот этап автоматически только при условии, если сборка и тест кодстайла прошли успешно.
Если тесты не прошли, то «зафейли» пайплайн.
В пайплайне отобрази вывод, что интеграционные тесты успешно прошли / провалились.

Part 5. Этап деплоя

- Для завершения этого задания ты должен перенести исполняемые файлы на другую виртуальную машину, которая будет играть роль продакшна. Удачи.

== Задание ==

Подними вторую виртуальную машину Ubuntu Server 22.04 LTS.

Напиши этап для CD, который «разворачивает» проект на другой виртуальной машине.

Запусти этот этап вручную при условии, что все предыдущие этапы прошли успешно.
Напиши bash-скрипт, который при помощи ssh и scp копирует файлы, полученные после сборки (артефакты), в директорию /usr/local/bin второй виртуальной машины.
В файле gitlab-ci.yml добавь этап запуска написанного скрипта.
В случае ошибки «зафейли» пайплайн.

В результате ты должен получить готовые к работе приложения из проекта C2_SimpleBashUtils (s21_cat и s21_grep) на второй виртуальной машине.

Part 6. Дополнительно. Уведомления

- Здесь написано, что твое следующее задание выполняется специально для нобелевских лауреатов. Здесь не сказано, за что они получили премию, но точно не за умение работать с gitlab-runner.

== Задание ==

Настрой уведомления о успешном/неуспешном выполнении пайплайна через бота с именем «[твой nickname] DO6 CI/CD» в Telegram.
  • Текст уведомления должен содержать информацию об успешности прохождения как этапа CI, так и этапа CD.
  • В остальном текст уведомления может быть произвольным.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published