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

Релизы на production часто срываются из-за человеческого фактора: забытые файлы, необновлённые конфиги, пропущенные тесты. Мы настраиваем CI/CD через GitHub Actions, чтобы автоматизировать сборку, тестирование и деплой вашего сайта. Наша команда реализует проект под ключ — от создания пайплайна до поддержки, обеспечивая стабильные и предсказуемые релизы.

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

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

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

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

Настройка 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 даёт до $220–320 в месяц.

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

Минимальный воркфлоу для сайта на 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+ реализованных пайплайнов с гарантией стабильной работы. Каждый кейс документируем, чтобы команда заказчика могла самостоятельно поддерживать и дорабатывать пайплайн. Стоимость простоев из-за ошибок деплоя может достигать $900–1.3k в день — CI/CD это исключает.

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

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

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

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

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

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1060