В качестве шаблона был взят проект из репозитория https://gitflic.ru/project/antonaleks605/ci-pipeline-practice-web-calculator.
Данный проект реализует CI/CD конвейер, конвейер состоит из трёх стадий:
- unit_tests - Выполнение юнит тестов, всего их 4.
- build - создания docker-образа, в проекте используется образ Docker in docker (dind) и перенос его в репозиторий Docker hub
- deploy - деплой приложения (dind)
Процесс выполнения задания:
-
Проведение юнит тестов и функциональных тестов через сервис Selenium. Перед запуском конвейера локально были пройдены юнит тесты и функциональные тесты (по 4-е теста, всего 8 тестов). Скрипт для функционального теста был немного подкорректирован - был указан новый путь к драйверу и проведены настройки для проверки тестов в яндекс браузере.
-
Установка runner и настройка агентов CI/CD. Далее проводилась установка runner-а и настройка агента CI/CD. Для правильного функционирования runner-а был создан и настроен файл конфигурации. Запуск runner-а производился на ОС Windows и с облачного сервиса Play with docker. Для создания и деплоя docker-образа был использован облачный сервис.
-
Привязка репозитория с Docker-hub. Был зарегистрирован аккаун в docker-hub и создан репозиторий web-calculator - https://hub.docker.com/repository/docker/artembednarskij/web-calculator. Данные docker-hub были занесены в переменные окружения.
-
Создание скрипта CI/CD. Весь скрипт CI/CD написан в файле gitflic-ci.yaml. Все этапы жизни приложения были описаны тремя этапами, которые идут последовательно. В процессе написания кода все этапы были протестированны множество раз, пока не достигли статуса “Успех”.
После успешной стадии build мы можем увидеть изменения в репозитории Docker hub:
Работа runner-а в облачном сервисе Play with docker:
Веб страница в Play with docker: