diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5395b54..8b4864f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,3 +1,4 @@ +# Automated CI/CD test workflow name: CI on: diff --git a/docs/ci_cd_workflow.md b/docs/ci_cd_workflow.md new file mode 100644 index 0000000..0fc9272 --- /dev/null +++ b/docs/ci_cd_workflow.md @@ -0,0 +1,34 @@ +# CI/CD Workflow + + Это руководство описывает процесс CI/CD для проекта, настроенный через GitHub Actions, и то, как правильно использовать ветки `dev` и `master`. + + ## Обзор + + Проект использует две основные ветки: + - `master` - Стабильная версия, содержащая проверенный код. + - `dev` - Рабочая ветка, куда отправляются новые изменения. + + Настроенный GitHub Actions workflow (`.github/workflows/ci.yml`) автоматизирует запуск тестов для предотвращения попадания сломанного кода в стабильную ветку. + + ## Инструкция по работе (Git Workflow) + + 1. **Разработка в `dev`**: Все новые изменения должны отправляться (push) в ветку `dev`. + 2. **Автоматическое тестирование**: Каждый `push` в ветку `dev` триггерит GitHub Actions, который запускает тесты. Вы можете проверить статус выполнения в разделе **Actions** в вашем репозитории на GitHub. + 3. **Создание Pull Request (PR)**: Если тесты прошли успешно, и код готов, создайте Pull Request из ветки `dev` в ветку `master`. + 4. **Проверка при Pull Request**: При создании PR в `master`, GitHub Actions снова запустит тесты, чтобы убедиться, что код после слияния ничего не сломает. + 5. **Мерж в `master`**: После успешного прохождения тестов и ревью кода, PR можно слить (merge) в `master`. + + ## Настройка защиты веток (Branch Protection Rules) + + Чтобы запретить прямое слияние сломанного кода в `master`, необходимо настроить правила защиты веток в настройках GitHub: + + 1. Перейдите в ваш репозиторий на GitHub. + 2. Откройте **Settings** -> **Branches**. + 3. В разделе **Branch protection rules** нажмите **Add rule**. + 4. В поле **Branch name pattern** введите `master`. + 5. Отметьте **Require a pull request before merging**. + 6. Отметьте **Require status checks to pass before merging**. + - В строке поиска найдите и выберите джобу `test` (это имя джобы из `.github/workflows/ci.yml`). + 7. Нажмите **Create** (или **Save changes**). + + Теперь слить PR в `master` будет возможно только после успешного завершения тестов, что гарантирует стабильность основной ветки.