90 lines
3 KiB
Markdown
90 lines
3 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
|
||
|
||
# ИЛИ ручной запуск через 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) для подробной диагностики проблем.
|