Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# Automated CI/CD test workflow
name: CI

on:
Expand Down
34 changes: 34 additions & 0 deletions docs/ci_cd_workflow.md
Original file line number Diff line number Diff line change
@@ -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` будет возможно только после успешного завершения тестов, что гарантирует стабильность основной ветки.