mnemo_cards/tools/ci/README.md

75 lines
2.3 KiB
Markdown
Raw Normal View History

2025-11-16 13:54:50 +00:00
# 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` - Контроль качества кода
## Процесс 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) для подробной диагностики проблем.