# 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.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 ``` ## Ручной запуск ### Через 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) для подробной диагностики проблем.