-
Или подготовьте к работе Managed GitLab от yandex cloud по инструкции . Или создайте виртуальную машину из публичного образа по инструкции .
-
Создайте виртуальную машину и установите на нее gitlab runner, подключите к вашему серверу gitlab по инструкции .
-
(* Необязательное задание повышенной сложности. ) Если вы уже знакомы с k8s попробуйте выполнить задание, запустив gitlab server и gitlab runner в k8s по инструкции.
-
Создайте свой новый проект.
-
Создайте новый репозиторий в GitLab, наполните его файлами.
-
Проект должен быть публичным, остальные настройки по желанию.
В репозитории содержится код проекта на Python. Проект — RESTful API сервис. Ваша задача — автоматизировать сборку образа с выполнением python-скрипта:
- Образ собирается на основе centos:7.
- Python версии не ниже 3.7.
- Установлены зависимости:
flask
flask-jsonpify
flask-restful
. - Создана директория
/python_api
. - Скрипт из репозитория размещён в /python_api.
- Точка вызова: запуск скрипта.
- При комите в любую ветку должен собираться docker image с форматом имени hello:gitlab-$CI_COMMIT_SHORT_SHA . Образ должен быть выложен в Gitlab registry или yandex registry.
Вашему проекту нужна бизнесовая доработка: нужно поменять 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.