From 7056ad95c7084c0e61d55e7ba7dd678c5c8a2517 Mon Sep 17 00:00:00 2001 From: MarcusStill <69536339+MarcusStill@users.noreply.github.com> Date: Mon, 7 Sep 2026 22:40:38 +0000 Subject: [PATCH] Docs: Add CI/CD workflow documentation and minor update to ci.yml\n\nAdded documentation about GitHub Actions workflow and GitHub Branch Protection rules. Also added a comment to .github/workflows/ci.yml so it is included in the patch. --- .github/workflows/ci.yml | 1 + docs/ci_cd_workflow.md | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 docs/ci_cd_workflow.md diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5395b54..b4e26af 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,3 +1,4 @@ +# GitHub Actions CI/CD workflow name: CI on: diff --git a/docs/ci_cd_workflow.md b/docs/ci_cd_workflow.md new file mode 100644 index 0000000..0ce9842 --- /dev/null +++ b/docs/ci_cd_workflow.md @@ -0,0 +1,34 @@ +# Настройка CI/CD и рабочий процесс + +В данном проекте используется GitHub Actions для непрерывной интеграции (CI). Рабочий процесс настроен в файле `.github/workflows/ci.yml`. + +## Рабочий процесс (Git Flow) + +В репозитории используются две основные ветки: +- **`dev`** — ветка для активной разработки. Все новые фичи, исправления и наработки отправляются сюда. +- **`master`** — стабильная ветка. Сюда попадает только проверенный код, успешно прошедший тесты. + +**Рекомендуемый процесс работы:** +1. Выполняйте разработку и делайте коммиты. Отправляйте изменения (push) в ветку `dev`. +2. При пуше в `dev` GitHub Actions автоматически запустит все тесты (из каталога `tests/`). +3. Если тесты прошли успешно и функционал готов, создайте Pull Request (PR) из ветки `dev` в ветку `master`. +4. При создании PR тесты будут запущены повторно. Если они успешны, код можно сливать (merge) в `master`. +5. Если на любом этапе тесты упали, необходимо проанализировать логи GitHub Actions, локально исправить ошибки и отправить новый коммит в `dev`. + +## Настройка защиты ветки `master` (Branch Protection Rules) + +Чтобы гарантировать, что в `master` попадает только рабочий код, необходимо настроить защиту ветки в настройках репозитория на GitHub: + +1. Перейдите на страницу вашего репозитория на GitHub. +2. Откройте вкладку **Settings** (Настройки). +3. В левом меню выберите **Branches** (Ветки). +4. Нажмите кнопку **Add branch protection rule** (Добавить правило защиты ветки) или отредактируйте существующее. +5. В поле **Branch name pattern** (Шаблон имени ветки) введите `master`. +6. В разделе **Protect matching branches** отметьте следующие пункты: + - **Require a pull request before merging** — требует создания PR для слияния кода. + - **Require status checks to pass before merging** — запрещает слияние PR, если тесты не пройдены. + - После включения этой опции найдите в строке поиска и выберите проверку тестов, которая запускается через GitHub Actions (например, `test` - имя job из `ci.yml`). + - Опционально включите **Require branches to be up to date before merging**, чтобы тестировать актуальный код. +7. Нажмите **Create** (Создать) или **Save changes** (Сохранить), чтобы сохранить правило. + +Теперь никто не сможет напрямую запушить код в `master` или слить PR, если тесты завершились с ошибкой.