mnemo_cards/tools/ci
2025-11-19 21:13:33 +03:00
..
ci-backend.yml stuff 2025-11-16 16:54:50 +03:00
ci-main.yml feat: add manual workflow dispatch support for UI deployment 2025-11-16 17:10:33 +03:00
ci-mobile.yml stuff 2025-11-16 16:54:50 +03:00
ci-web.yml stuff 2025-11-16 16:54:50 +03:00
code-quality.yml f 2025-11-16 17:05:47 +03:00
deploy.yaml stuff 2025-11-19 21:13:33 +03:00
README.md feat: add manual workflow dispatch support for UI deployment 2025-11-16 17:10:33 +03:00

CI/CD Workflows

Forgejo Actions workflows для автоматической сборки, тестирования и развертывания проекта.

Быстрый старт

  1. Проверьте готовность:

    ../../scripts/check_deploy_ready.sh
    
  2. Настройте секреты в Forgejo:

    DEPLOY_SSH_PRIVATE_KEY  # SSH ключ для деплоя
    
  3. Протестируйте локально:

    ../../scripts/test_ci_locally.sh
    
  4. Запустите деплой:

    # Автоматический деплой
    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

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 деплой

../../deploy/backend-build_app.sh

Web app деплой

../../deploy/web-app/deploy.sh

Troubleshooting

См. CI_CD_SETUP.md для подробной диагностики проблем.