Технический разборDevOps
15 мая 2024 г.5 мин

Настройка отказоустойчивого CI/CD пайплайна на GitHub Actions

Разбор пайплайна на GitHub Actions с Telegram-уведомлениями и Zero-Downtime деплоем.
Иван Кавальков
Основатель Smart Creative Group
Короткий ответ по статье

Суть без длинного чтения

Если нужен быстрый вывод по теме, ниже собрали главное: что это значит, когда проблема уже влияет на бизнес и какой следующий шаг обычно даёт пользу быстрее всего.

Коротко

О чем статья

Разбор пайплайна на GitHub Actions с Telegram-уведомлениями и Zero-Downtime деплоем.

Когда актуально

В какой момент это становится проблемой

Проблема созрела, если релизы делаются вручную, production плохо наблюдаем, а сбои превращаются в дорогой и плохо управляемый процесс.

Следующий шаг

Что делать после прочтения

Покажем, где у вас ломается release process: pipeline, rollback, production-контур, диагностика или эксплуатационная дисциплина после выкладки.

#01Зачем нужен CI/CD?

Ручной деплой — это всегда человеческий фактор. CI/CD (Continuous Integration / Continuous Deployment) позволяет автоматизировать проверку кода, тестирование и доставку на сервер.

#02Архитектура нашего пайплайна

В SmartCG мы используем GitHub Actions. Наш стандартный пайплайн делится на 2 файла: ci.yml и cd.yml.

#03CI: Проверки

  • Security Audit: Запускаем npm audit для поиска уязвимостей.
  • Build Check: Проверяем, компилируется ли TypeScript код.
  • Linter: Прогон ESLint.

#04CD: Деплой

Если CI прошел успешно, запускается деплой:

  • Подключение к серверу по SSH (через appleboy/ssh-action).
  • Генерация .env файлов из GitHub Secrets.
  • Сборка Docker-образов (docker compose build).
  • Перезапуск контейнеров (docker compose up -d).

#05Уведомления в Telegram

Мы добавили шаг, который при падении пайплайна выгружает последние 100 строк логов и отправляет их документом в Telegram. Это позволяет разработчику узнать причину ошибки, даже не открывая GitHub.

Важное предупреждение:Перед внедрением стоит отдельно проверить риски, зависимости и стоимость изменений, чтобы не получить срыв сроков на следующем этапе.

Редакционная проверка и источники

Материал подготовлен как практический разбор и привязан к рабочим сценариям бизнеса, а не к абстрактной теории.

Ревью материала
Техническая редакция SmartCG
Архитектурное и редакционное ревью
Последнее обновление
15 мая 2024 г.
Как готовили материал
Материал подготовлен на основе проектной практики SmartCG, редакционного ревью и сопоставления с официальной документацией по теме.
Источники и подтверждающие материалы
Продолжение темы

Что ещё посмотреть по этой задаче

Ниже материалы, которые помогают перейти от общего понимания проблемы к более предметному следующему шагу.

Как перевести статью в следующий шаг

Куда идти после прочтения

Здесь не теория ради теории. Ниже собрали, какая услуга чаще всего решает похожую задачу на практике и какой кейс стоит открыть, если хотите быстро понять формат результата.

Релевантная услуга

Технический аудит и план стабилизации web-проекта

от 1 200 BYN
support

Аудит текущего web-проекта с картой рисков, приоритетами и планом первой очереди.

Быстрый разбор ситуации

Становится понятно, что именно нужно проверить в первую очередь: продукт, интеграции, инфраструктуру или работу подрядчиков.

Карта рисков и приоритетов

Вы получаете список проблем по критичности: что уже бьёт по выручке и стабильности, а что можно оставить на второй этап.

Практическое продолжение статьи

Релизы до сих пор зависят от ручных действий и нервных выкладок?

Покажем, где у вас ломается release process: pipeline, rollback, production-контур, диагностика или эксплуатационная дисциплина после выкладки.

Рекомендуемая услуга SmartCG

Технический аудит и план стабилизации web-проекта

от 1 200 BYN
support

Аудит текущего web-проекта с картой рисков, приоритетами и планом первой очереди.