76 lines
2.5 KiB
Markdown
76 lines
2.5 KiB
Markdown
# 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) для подробной диагностики проблем.
|