Настройка отказоустойчивого CI/CD пайплайна на GitHub Actions
Разбор пайплайна на GitHub Actions с Telegram-уведомлениями и Zero-Downtime деплоем.
Зачем нужен CI/CD?
Ручной деплой — это всегда человеческий фактор. CI/CD (Continuous Integration / Continuous Deployment) позволяет автоматизировать проверку кода, тестирование и доставку на сервер.
Архитектура нашего пайплайна
В SmartCG мы используем GitHub Actions. Наш стандартный пайплайн делится на 2 файла: ci.yml и cd.yml.
CI: Проверки
- Security Audit: Запускаем
npm auditдля поиска уязвимостей. - Build Check: Проверяем, компилируется ли TypeScript код.
- Linter: Прогон ESLint.
CD: Деплой
Если CI прошел успешно, запускается деплой:
- Подключение к серверу по SSH (через appleboy/ssh-action).
- Генерация .env файлов из GitHub Secrets.
- Сборка Docker-образов (docker compose build).
- Перезапуск контейнеров (docker compose up -d).
Уведомления в Telegram
Мы добавили шаг, который при падении пайплайна выгружает последние 100 строк логов и отправляет их документом в Telegram. Это позволяет разработчику узнать причину ошибки, даже не открывая GitHub.
Нужна помощь с архитектурой?
Мы проектируем и разрабатываем Enterprise-решения с финансовой гарантией по SLA. Запишитесь на бесплатный аудит с нашим CTO, чтобы оценить узкие места вашего проекта.