mnemo_cards/tools/ci/README.md
2025-11-20 01:41:54 +03:00

90 lines
3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CI/CD Workflows
Forgejo Actions workflows для автоматической сборки, тестирования и развертывания проекта.
## Быстрый старт
1. **Проверьте готовность:**
```bash
../../scripts/check_deploy_ready.sh
```
2. **Настройте секреты в Forgejo:**
```
DEPLOY_SSH_PRIVATE_KEY # SSH ключ для деплоя
```
3. **Протестируйте локально:**
```bash
../../scripts/test_ci_locally.sh
```
4. **Запустите деплой:**
```bash
# Автоматический деплой
git push origin main
# ИЛИ ручной запуск через UI Forgejo
```
## Workflows
- `ci-main.yml` - Главный pipeline (координирует все остальные)
- `ci-backend.yml` - CI для backend (Dart)
- `ci-web.yml` - CI для веб приложения (Flutter Web)
- `ci-mobile.yml` - CI для мобильного приложения (Flutter)
- `cd-deploy.yml` - CD для развертывания на сервер
- `code-quality.yml` - Контроль качества кода
## Процесс CI/CD
### 1. Code Quality Gate
- Проверка линтинга для всех проектов
- Запуск тестов с покрытием
- Сканирование на наличие секретов
- Проверка зависимостей на уязвимости
### 2. Сборка компонентов
- **Backend**: Компиляция в нативный бинарный файл
- **Web App**: Сборка Flutter web приложения
- **Mobile App**: Сборка APK для Android и app для iOS
### 3. Развертывание
- **Backend**: Автоматическое обновление сервиса на `api.mnemo-cards.online`
- **Web App**: Rsync на веб сервер `mnemo-cards.online` + перезагрузка Nginx
- **Mobile App**: Создание GitHub релиза с APK
## Секреты Forgejo
```bash
DEPLOY_SSH_PRIVATE_KEY # SSH ключ для доступа к серверу 147.45.152.129
```
## Ручной запуск
### Через UI Forgejo
1. Перейдите в репозиторий на Forgejo
2. Откройте вкладку **Actions**
3. Выберите workflow:
- **"Main CI Pipeline"** - полный цикл (сборка + деплой)
- **"Deploy Applications"** - только деплой (без пересборки)
4. Нажмите **"Run workflow"** (кнопка с плей-иконкой)
5. Выберите компонент для деплоя (для Deploy Applications)
6. Нажмите **"Run workflow"**
### Через командную строку
#### Backend деплой
```bash
../../deploy/backend-build_app.sh
```
#### Web app деплой
```bash
../../deploy/web-app/deploy.sh
```
## Troubleshooting
См. [CI_CD_SETUP.md](../../docs/CI_CD_SETUP.md) для подробной диагностики проблем.