Skip to content

DianaZabelina/cicd-for-simple-bash-utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

CI/CD for SimpleBashUtils

CI/CD for SimpleBashUtils — учебный проект, в котором настроен простой CI/CD-процесс (сборка, тестирование, развертывание) с использованием GitLab CI. В качестве примера использована собственная реализация утилит cat и grep на языке C.

Содержание

Введение

Этот проект сосредоточен на практической реализации CI/CD-процесса с использованием GitLab CI. Пайплайн охватывает автоматическую сборку, проверку кодстайла, тестирование, деплой на сервер и уведомления через Telegram-бота.

Требования к проекту

Ниже приведены требования к настройке CI/CD-пайплайна для SimpleBashUtils.

В качестве результата работы необходимо сохранить два дампа образов виртуальных машин, описанных далее.
P.S. Ни в коем случае не сохраняй дампы в гит!

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

  • Подними виртуальную машину 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) на второй виртуальной машине.

  • Сохрани дампы образов виртуальных машин.
    P.S. Ни в коем случае не сохраняй дампы в гит!
    • Не забудь запустить пайплайн с последним коммитом в репозитории.

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

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

Результаты работы

Отчет по заданию с подробными скриншотами представлен в файле CI-CD_report.md, в репозитории также находятся скрипты и исходный код SimpleBashUtils.

About

CI/CD setup for SimpleBashUtils (custom cat and grep) with GitLab

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published