CI/CD#
Проект тестируется, собирается и выкладывается на хостинг автоматически. Для этого мы используем GitHub Actions.
Бесплатный тариф накладывает свои ограничения, и по этой причине вместо Docker-образа sphinxdoc:sphinx мы используем образ ubuntu:latest, в который при запуске CI/CD устанавливаются все необходимые DEB- и Python-пакеты.
Всего в проекте две основных ветки:
develop– основная ветка проекта, куда попадают все PR после прохождения ревью. Периодически эта ветка стабилизируется, после чего изменения из неё передаются в веткуmaster.master– ветка, на основе которой собирается стабильная версия сайта.
Существующие Workflow описаны в файлах, хранящихся в каталоге .github/workflows/.
testing.yml– описание задач тестирования.Эти задачи вызываются при создании Pull Request (далее – PR) и обновлении рабочих веток. На этом этапе выполняется:
Сборка Docker-образа.
Сборка проекта в формате
htmlи проверка валидности ссылок.
Note
Успешное завершение всех этапов автоматического тестирования – обязательное условие при прохождении ревью.
build-prod.yml– сборка стабильной версии проекта.Эти задачи выполняются только при внесении изменений в ветку
master. На этом этапе выполняются:Сборка проекта в формате
html.Выкладка собранных файлов на хостинг.
Результат доступен по ссылке: https://techwriters.ru/
build-test.yml– сборка тестовой версии проекта.Эти задачи выполняются только при внесении изменений в ветку
develop. На этом этап выполняются:Сборка проекта в формате
html.Выкладка собранных файлов на хостинг.
Результат доступен по ссылке: http://test.techwriters.ru/