Деплой
CI/CD Workflows
| Workflow | Триггер | Назначение |
|---|---|---|
ci.yml | Manual / Push to dev / PR | Проверка форматирования |
deploy-to-dev.yml | Manual / Push to dev | Деплой инфраструктуры на dev |
deploy-to-prod.yml | Manual | Деплой инфраструктуры на prod |
Автоматический деплой (Dev)
Push в ветку dev автоматически запускает деплой на dev-сервер.
bash
git checkout dev
git push origin devРучной деплой (Prod)
- Перейти в GitHub Actions
- Выбрать "Deploy to Prod" workflow
- Нажать "Run workflow"
GitHub Secrets
Для работы CI/CD необходимы следующие секреты:
SSH доступ
| Секрет | Описание |
|---|---|
| DEV_INTEG_SSH_HOST | IP dev-сервера |
| DEV_INTEG_SSH_USER | SSH пользователь dev |
| DEV_INTEG_SSH_KEY | SSH приватный ключ dev |
| PROD_INTEG_SSH_HOST | IP prod-сервера |
| PROD_INTEG_SSH_USER | SSH пользователь prod |
| PROD_INTEG_SSH_KEY | SSH приватный ключ prod |
Doppler
| Секрет | Описание |
|---|---|
| DEV_DOPPLER_TOKEN | Doppler токен dev |
| PROD_DOPPLER_TOKEN | Doppler токен prod |
Cloudflare (для документации)
| Секрет | Описание |
|---|---|
| CLOUDFLARE_PAGES_API_TOKEN | API токен Cloudflare Pages |
| CLOUDFLARE_ACCOUNT_ID | ID аккаунта Cloudflare |
Процесс деплоя
- Checkout — получение кода
- SSH Connect — подключение к серверу
- Create Directory — создание
/opt/integ/ - Copy Files — копирование docker-compose.yml
- Generate .env — получение секретов из Doppler
- Docker Compose Up — запуск сервисов
- Health Check — проверка работоспособности
Локальный запуск
bash
# Установка зависимостей
npm install
# Генерация .env
./scripts/generate-env.sh dev
# Проверка форматирования
npm run format:check
# Форматирование кода
npm run formatHealth Check
Скрипт scripts/health-check.sh проверяет:
- Доступность Traefik
- Ответ от API
- Ответ от Admin
- Статус PostgreSQL (только dev)