Skip to content

Latest commit

 

History

History
executable file
·
70 lines (46 loc) · 4.12 KB

09-ci-06-gitlab.md

File metadata and controls

executable file
·
70 lines (46 loc) · 4.12 KB

Домашнее задание к занятию 12 «GitLab»

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

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

Ссылка 1

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

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. При комите в любую ветку должен собираться docker image с форматом имени hello:gitlab-$CI_COMMIT_SHORT_SHA . Образ должен быть выложен в Gitlab registry или yandex registry.
    • (задание необязательное к выполению) При комите в ветку master после сборки должен подняться pod в kubernetes. Примерный pipeline для push в kubernetes по ссылке. Если вы еще не знакомы с k8s - автоматизируйте сборку и деплой приложения в docker на виртуальной машине.

Ссылка 2

Ссылка 3

Ссылка 4

Product Owner

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

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

Ссылка 5

Developer

Пришёл новый Issue на доработку, вам нужно:

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

Ссылка 6

Ссылка 7

Tester

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

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

Итог

В качестве ответа пришлите подробные скриншоты по каждому пункту задания:

  • файл gitlab-ci.yml;
  • Dockerfile;
  • лог успешного выполнения пайплайна;
  • решённый Issue.

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