Сейчас для сборки и локального запуска проекта требуется установка Docker, Docker Compose и множества дополнительных инструментов — это усложняет процесс для новых контрибьюторов и замедляет проверку изменений.
Цель: автоматизировать сборку проекта через GitHub Actions и развернуть Docker‑образ в GitHub Container Registry (GHCR). Это позволит:
- упростить вклад в проект — не нужно настраивать полную локальную среду для проверки сборок;
- обеспечить единообразие сборок в разных окружениях;
- предоставить готовые Docker‑образы в GHCR для быстрого развёртывания.
Критерии приёмки
Пошаговое описание реализации
Шаг 1. Создание workflow для сборки и деплоя
- Создать файл
.github/workflows/build-and-deploy.yml.
- Настроить триггер: запуск при пуше в ветку
main и при создании нового тега.
- В job сборки:
- использовать runner
ubuntu‑latest;
- установить зависимости (CMake, компилятор C++20);
- клонировать репозиторий и подмодули;
- выполнить сборку проекта через CMake (
cmake -B build -DCMAKE_BUILD_TYPE=Release и cmake --build build).
Шаг 2. Сборка Docker‑образа
- Добавить шаг в workflow для сборки Docker‑образа.
- Использовать
Dockerfile из репозитория (убедиться, что он есть и корректен).
- Присвоить образу теги:
latest для пушей в main;
- версия из тега (например,
v1.2.3) для tagged‑релизов.
Шаг 3. Аутентификация и деплой в GHCR
- Настроить аутентификацию в GHCR через секрет
GITHUB_TOKEN (предопределённый токен GitHub).
- Авторизоваться в registry:
ghcr.io.
- Запустить
docker push для отправки образа в GHCR.
- Убедиться, что образ доступен в разделе Packages репозитория.
Шаг 4. Обновление документации
- В
README.md добавить раздел «Быстрый старт с Docker».
- Указать команды для:
- входа в GHCR:
docker login ghcr.io -u $GITHUB_ACTOR -p $GITHUB_TOKEN;
- скачивания образа:
docker pull ghcr.io/<ваш-username>/kuni:latest;
- запуска контейнера.
Полезные ссылки
Сейчас для сборки и локального запуска проекта требуется установка Docker, Docker Compose и множества дополнительных инструментов — это усложняет процесс для новых контрибьюторов и замедляет проверку изменений.
Цель: автоматизировать сборку проекта через GitHub Actions и развернуть Docker‑образ в GitHub Container Registry (GHCR). Это позволит:
Критерии приёмки
.github/workflows/.ubuntu‑latest.shaилиtag).latest,main,v1.0.0).Пошаговое описание реализации
Шаг 1. Создание workflow для сборки и деплоя
.github/workflows/build-and-deploy.yml.mainи при создании нового тега.ubuntu‑latest;cmake -B build -DCMAKE_BUILD_TYPE=Releaseиcmake --build build).Шаг 2. Сборка Docker‑образа
Dockerfileиз репозитория (убедиться, что он есть и корректен).latestдля пушей вmain;v1.2.3) для tagged‑релизов.Шаг 3. Аутентификация и деплой в GHCR
GITHUB_TOKEN(предопределённый токен GitHub).ghcr.io.docker pushдля отправки образа в GHCR.Шаг 4. Обновление документации
README.mdдобавить раздел «Быстрый старт с Docker».docker login ghcr.io -u $GITHUB_ACTOR -p $GITHUB_TOKEN;docker pull ghcr.io/<ваш-username>/kuni:latest;Полезные ссылки