Настройка CI/CD для сайта через GitHub Actions

Настройка CI/CD для сайта через GitHub Actions

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Настройка CI/CD для сайта через GitHub Actions
Средний
от 1 дня до 3 дней

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    981
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1241
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    994

Настройка CI/CD для сайта через GitHub Actions

Каждый второй релиз на production срывается из-за человеческого фактора: забыли залить файл, не обновили конфиг, пропустили тесты. CI/CD исключает эти риски. Мы, в компании с 5-летним опытом, настроили более 50 пайплайнов для проектов от лендингов до высоконагруженных SaaS. GitHub Actions — наш выбор для быстрой автоматизации. Закажите настройку — получите готовый пайплайн за 1–5 дней.

Почему GitHub Actions?

В отличие от Jenkins или GitLab CI, не нужно поднимать отдельный сервер, настраивать вебхуки и плагины. Всё управляется через YAML-файлы в репозитории. Для публичных проектов — бессрочно бесплатно. Для приватных — 2000 минут в месяц на бесплатном тарифе, чего хватает на 400–1000 деплоев. При превышении лимита можно подключить self-hosted runner на своём сервере — минуты не расходуются. GitHub Actions в 2 раза быстрее настраивается, чем GitLab CI, и не требует сервера, в отличие от Jenkins.

Как ускорить сборку с помощью кеширования?

Кеширование зависимостей — главный ускоритель. actions/setup-node с параметром cache: 'npm' автоматически кеширует ~/.npm. Для PHP используйте actions/cache с ключом по composer.lock. Пример для Composer:

- uses: actions/cache@v4 with: path: vendor key: composer-${{ hashFiles('composer.lock') }} 

После прогрева кеша время прогона падает с 3–5 минут до 60–90 секунд. Матричные сборки (несколько версий Node.js) выполняются параллельно и кешируются отдельно. Экономия времени команды — 3 часа в неделю, что при средней ставке DevOps даёт до 25 000 ₽ в месяц.

Структура воркфлоу

Минимальный воркфлоу для сайта на Node.js с деплоем на сервер по SSH:

name: Deploy on: push: branches: [main] jobs: test: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - run: npm ci - run: npm test build: needs: test runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - run: npm ci - run: npm run build - uses: actions/upload-artifact@v4 with: name: dist path: dist/ deploy: needs: build runs-on: ubuntu-22.04 environment: production steps: - uses: actions/download-artifact@v4 with: name: dist path: dist/ - name: Deploy via rsync uses: burnett01/[email protected] with: switches: -avzr --delete path: dist/ remote_path: /var/www/mysite remote_host: ${{ secrets.DEPLOY_HOST }} remote_user: deploy remote_key: ${{ secrets.DEPLOY_KEY }} 

Три джоба — тест, сборка, деплой. Если тесты падают, сборка не запускается. Используем артефакты для передачи собранных файлов.

Управление секретами

Все чувствительные данные — в Settings → Secrets and variables → Actions. Никакие ключи или пароли не попадают в код. Для разных окружений используем Environments — каждый набор секретов изолирован. Деплой в production можно защитить ручным одобрением.

- name: Configure .env run: | echo "DATABASE_URL=${{ secrets.DATABASE_URL }}" >> .env echo "APP_KEY=${{ secrets.APP_KEY }}" >> .env 

Docker-сборка и пуш в Registry

Если деплой идёт через контейнеры:

- name: Build and push Docker image uses: docker/build-push-action@v5 with: context: . push: true tags: ghcr.io/${{ github.repository }}:${{ github.sha }} cache-from: type=gha cache-to: type=gha,mode=max 

GitHub Container Registry доступен бесплатно, авторизация через встроенный GITHUB_TOKEN.

Уведомления о статусе

- name: Notify Telegram on failure if: failure() uses: appleboy/telegram-action@master with: to: ${{ secrets.TELEGRAM_CHAT_ID }} token: ${{ secrets.TELEGRAM_TOKEN }} message: "❌ Deploy failed: ${{ github.repository }} @ ${{ github.sha }}" 

if: failure() запускает только при сбое. Для уведомлений о начале и успехе — if: always().

Пошаговая инструкция настройки CI/CD

  1. Создайте в корне репозитория папку .github/workflows.
  2. Добавьте файл deploy.yml с конфигурацией (пример выше).
  3. Настройте секреты в Settings → Secrets and variables → Actions.
  4. Запушьте изменения в ветку main — воркфлоу запустится автоматически.
  5. Проверьте статус во вкладке Actions репозитория.
  6. При успехе — деплой выполнен. При ошибке — получите уведомление.

Сравнение: GitHub Actions vs другие CI/CD

Платформа Простота настройки Необходимость сервера Бесплатный лимит Среднее время настройки
GitHub Actions Высокая Нет 2000 мин/мес (частные) 1-2 дня
GitLab CI Средняя Нет (но можно self-hosted) 400 мин/мес 2-3 дня
Jenkins Низкая Да Неограничен (свой сервер) 3-7 дней

GitHub Actions проще в настройке, чем Jenkins, и не требует выделенного сервера. Для большинства веб-проектов это оптимальный выбор.

Этапы настройки и сроки

Этап Длительность Результат
Анализ проекта 1-2 часа Понимание процесса деплоя и стека
Создание воркфлоу 1-2 дня YAML-файл с тестами, сборкой, деплоем
Настройка секретов 1 час Безопасное хранение ключей
Оптимизация кеша 2-3 часа Сборка за 60-90 секунд
Интеграция уведомлений 1-2 часа Оповещения в Telegram/Slack
Тестирование и отладка 1 день Стабильная работа пайплайна

Что входит в работу

Мы предоставляем полный цикл настройки CI/CD:

  • Анализ текущего процесса деплоя и архитектуры проекта
  • Создание YAML-воркфлоу с тестами, сборкой, деплоем
  • Настройка секретов и окружений в репозитории
  • Оптимизация скорости сборки (кеширование, матрицы)
  • Интеграция уведомлений (Telegram, Slack, email)
  • Документация по воркфлоу и инструкция для команды
  • Обучение разработчиков работе с пайплайном
Полный пример конфига для Node.js + Docker
name: Deploy on: [push] jobs: test: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - run: npm ci - run: npm test build: needs: test runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - run: npm ci - run: npm run build - name: Build Docker image run: docker build -t myapp . - name: Push to registry run: docker push ghcr.io/myorg/myapp:latest deploy: needs: build runs-on: ubuntu-22.04 steps: - name: Deploy via SSH uses: appleboy/[email protected] with: host: ${{ secrets.DEPLOY_HOST }} username: deploy key: ${{ secrets.DEPLOY_KEY }} script: | docker pull ghcr.io/myorg/myapp:latest docker-compose up -d 

Наши результаты и опыт

Более 5 лет мы настраиваем CI/CD для проектов разной сложности — от лендингов до высоконагруженных SaaS. 50+ реализованных пайплайнов с гарантией стабильной работы. Каждый кейс документируем, чтобы команда заказчика могла самостоятельно поддерживать и дорабатывать пайплайн. Стоимость простоев из-за ошибок деплоя может достигать 100 000 ₽ в день — CI/CD это исключает.

Сроки и стоимость

  • Базовый воркфлоу (тест + деплой по SSH) — 1–2 дня
  • Полный pipeline (матрицы, Docker, уведомления, ручные одобрения) — 3–5 дней

Стоимость рассчитывается индивидуально в зависимости от сложности и стека. Свяжитесь с нами для консультации — подберем оптимальное решение для вашего проекта.