Skip to content

Latest commit

 

History

History
90 lines (63 loc) · 5.43 KB

09-ci-06-gitlab.md

File metadata and controls

90 lines (63 loc) · 5.43 KB

Подготовка к выполнению

  1. Необходимо подготовить gitlab к работе по инструкции
  2. Создайте свой новый проект
  3. Создайте новый репозиторий в gitlab, наполните его файлами
  4. Проект должен быть публичным, остальные настройки по желанию

Основная часть

DevOps

В репозитории содержится код проекта на python. Проект - RESTful API сервис. Ваша задача автоматизировать сборку образа с выполнением python-скрипта:

  1. Образ собирается на основе centos:7
  2. Python версии не ниже 3.7
  3. Установлены зависимости: flask flask-jsonpify flask-restful
  4. Создана директория /python_api
  5. Скрипт из репозитория размещён в /python_api
  6. Точка вызова: запуск скрипта
  7. Если сборка происходит на ветке master: должен подняться pod kubernetes на основе образа python-api, иначе этот шаг нужно пропустить

Product Owner

Вашему проекту нужна бизнесовая доработка: необходимо поменять JSON ответа на вызов метода GET /rest/api/get_info, необходимо создать Issue в котором указать:

  1. Какой метод необходимо исправить
  2. Текст с { "message": "Already started" } на { "message": "Running"}
  3. Issue поставить label: feature

Developer

Вам пришел новый Issue на доработку, вам необходимо:

  1. Создать отдельную ветку, связанную с этим issue
  2. Внести изменения по тексту из задания
  3. Подготовить Merge Requst, влить необходимые изменения в master, проверить, что сборка прошла успешно

Tester

Разработчики выполнили новый Issue, необходимо проверить валидность изменений:

  1. Поднять докер-контейнер с образом python-api:latest и проверить возврат метода на корректность
  2. Закрыть Issue с комментарием об успешности прохождения, указав желаемый результат и фактически достигнутый

Итог

После успешного прохождения всех ролей - отправьте ссылку на ваш проект в гитлаб, как решение домашнего задания

‼️ Не забудьте оставить GitLab рабочим после выполнения задания и погасить все ресурсы в Yandex.Cloud сразу после получения зачета по домашнему заданию.

Необязательная часть

Автомазируйте работу тестировщика, пусть у вас будет отдельный конвейер, который автоматически поднимает контейнер и выполняет проверку, например, при помощи curl. На основе вывода - будет приниматься решение об успешности прохождения тестирования

Ответ

  • Подготовил gitlab по инструкции
    img.png
  • Создал новый проект, репозиторий и наполнил его файлом
    img_1.png

DevOps

  • Подготовил образ docker
  • Сборка на ветке master прошла успешно
    img_2.png
    img_3.png

Product Owner

  • Создал Issue на бизнесовую доработку
    img_4.png

Developer

  • Создал отдельную ветку, связанную с этим issue и Merge Requst
    img_5.png
  • Внёс необходимые изменения, сборка на отдельной ветке прошла успешно
    img_6.png
  • Влил необходимые изменения в master
    img_7.png
    img_8.png

Tester

  • Контейнер с образом python-api:latest поднялся
    img_9.png

  • Возврат метода ожидаемый
    img_10.png

  • Закрыл Issue
    img_11.png

  • Ссылка на проект