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. На этом этапе выполняются:

    1. Сборка проекта в формате html.

    2. Выкладка собранных файлов на хостинг.

    Результат доступен по ссылке: https://techwriters.ru/

  • build-test.yml – сборка тестовой версии проекта.

    Эти задачи выполняются только при внесении изменений в ветку develop. На этом этап выполняются:

    1. Сборка проекта в формате html.

    2. Выкладка собранных файлов на хостинг.

    Результат доступен по ссылке: http://test.techwriters.ru/