- Подготовьте к работе GitLab по инструкции.
- Создайте свой новый проект.
- Создайте новый репозиторий в GitLab, наполните его файлами.
- Проект должен быть публичным, остальные настройки по желанию.
В репозитории содержится код проекта на Python. Проект — RESTful API сервис. Ваша задача — автоматизировать сборку образа с выполнением python-скрипта:
- Образ собирается на основе centos:7.
- Python версии не ниже 3.7.
- Установлены зависимости:
flask
flask-jsonpify
flask-restful
. - Создана директория
/python_api
. - Скрипт из репозитория размещён в /python_api.
- Точка вызова: запуск скрипта.
- Если сборка происходит на ветке
master
: должен подняться pod kubernetes на основе образаpython-api
, иначе этот шаг нужно пропустить.
Вашему проекту нужна бизнесовая доработка: нужно поменять JSON ответа на вызов метода GET /rest/api/get_info
, необходимо создать Issue в котором указать:
- Какой метод необходимо исправить.
- Текст с
{ "message": "Already started" }
на{ "message": "Running"}
. - Issue поставить label: feature.
Пришёл новый Issue на доработку, вам нужно:
- Создать отдельную ветку, связанную с этим Issue.
- Внести изменения по тексту из задания.
- Подготовить Merge Request, влить необходимые изменения в
master
, проверить, что сборка прошла успешно.
Разработчики выполнили новый Issue, необходимо проверить валидность изменений:
- Поднять докер-контейнер с образом
python-api:latest
и проверить возврат метода на корректность. - Закрыть Issue с комментарием об успешности прохождения, указав желаемый результат и фактически достигнутый.
В качестве ответа пришлите подробные скриншоты по каждому пункту задания:
- файл gitlab-ci.yml;
- Dockerfile;
- лог успешного выполнения пайплайна;
- решённый Issue.
После выполнения задания выключите и удалите все задействованные ресурсы в Yandex Cloud.
Автомазируйте работу тестировщика — пусть у вас будет отдельный конвейер, который автоматически поднимает контейнер и выполняет проверку, например, при помощи curl. На основе вывода будет приниматься решение об успешности прохождения тестирования.