Налаштування 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
    1418
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1286
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    983
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1243
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    998

Налаштування 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.

Пришвидшення збірки кешуванням

Документація GitHub рекомендує кешувати залежності для прискорення workflow. Кешування залежностей — головний прискорювач. actions/setup-node з параметром cache: 'npm' автоматично кешує ~/.npm. Для PHP використовуйте actions/cache з ключем по composer.lock.

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

Після прогріву кешу час прогону падає з 3–5 хвилин до 60–90 секунд — це в 4 рази швидше. Матричні збірки (кілька версій Node.js) виконуються паралельно і кешуються окремо. Економія часу команди — 3 години на тиждень, що при середній ставці DevOps $50/год дає до $600 на місяць (близько 22 000 грн).

Структура воркфлоу (мінімальний приклад)

Мінімальний воркфлоу для сайту на Node.js з деплоєм на сервер по SSH. Цей приклад базується на офіційній документації GitHub Actions:

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 дні, від 3000 грн під ключ.
  • Повний pipeline (матриці, Docker, сповіщення, ручні схвалення) — 3–5 днів, від 8000 грн під ключ.

Вартість розраховується індивідуально. Напишіть нам для консультації — оцінимо проект безкоштовно.