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
|
2025-11-16 14:10:33 +00:00
|
|
|
|
# Автоматический деплой
|
2025-11-16 13:54:50 +00:00
|
|
|
|
git push origin main
|
2025-11-16 14:10:33 +00:00
|
|
|
|
|
|
|
|
|
|
# ИЛИ ручной запуск через UI Forgejo
|
2025-11-16 13:54:50 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 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
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## Ручной запуск
|
|
|
|
|
|
|
2025-11-16 14:10:33 +00:00
|
|
|
|
### Через UI Forgejo
|
|
|
|
|
|
|
|
|
|
|
|
1. Перейдите в репозиторий на Forgejo
|
|
|
|
|
|
2. Откройте вкладку **Actions**
|
|
|
|
|
|
3. Выберите workflow:
|
|
|
|
|
|
- **"Main CI Pipeline"** - полный цикл (сборка + деплой)
|
|
|
|
|
|
- **"Deploy Applications"** - только деплой (без пересборки)
|
|
|
|
|
|
4. Нажмите **"Run workflow"** (кнопка с плей-иконкой)
|
|
|
|
|
|
5. Выберите компонент для деплоя (для Deploy Applications)
|
|
|
|
|
|
6. Нажмите **"Run workflow"**
|
|
|
|
|
|
|
|
|
|
|
|
### Через командную строку
|
|
|
|
|
|
|
|
|
|
|
|
#### Backend деплой
|
2025-11-16 13:54:50 +00:00
|
|
|
|
```bash
|
|
|
|
|
|
../../deploy/backend-build_app.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-11-16 14:10:33 +00:00
|
|
|
|
#### Web app деплой
|
2025-11-16 13:54:50 +00:00
|
|
|
|
```bash
|
|
|
|
|
|
../../deploy/web-app/deploy.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## Troubleshooting
|
|
|
|
|
|
|
|
|
|
|
|
См. [CI_CD_SETUP.md](../../docs/CI_CD_SETUP.md) для подробной диагностики проблем.
|