mnemo_cards/tools/ci/README.md
2025-11-16 16:54:50 +03:00

76 lines
2.5 KiB
Markdown
Raw 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
```
## 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` - Контроль качества кода
- `release.yml` - Автоматические релизы
- `agent.yml` - AI-агент для автоматической генерации кода
## Процесс CI/CD
### 1. Code Quality Gate
- Проверка линтинга для всех проектов
- Запуск тестов с покрытием
- Сканирование на наличие секретов
- Проверка зависимостей на уязвимости
### 2. Сборка компонентов
- **Backend**: Компиляция в нативный бинарный файл
- **Web App**: Сборка Flutter web приложения
- **Mobile App**: Сборка APK для Android и app для iOS
### 3. Развертывание
- **Backend**: Автоматическое обновление сервиса на `api.memo-cards.online`
- **Web App**: Rsync на веб сервер `memo-cards.online` + перезагрузка Nginx
- **Mobile App**: Создание GitHub релиза с APK
## Секреты Forgejo
```bash
DEPLOY_SSH_PRIVATE_KEY # SSH ключ для доступа к серверу 147.45.152.129
```
## Ручной запуск
### 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) для подробной диагностики проблем.