hostprofi.ru
Подобрать хостинг
Термин·буква G

GitHub Actions

краткое определение

GitHub Actions — встроенная CI/CD платформа GitHub для автоматизации тестирования, сборки и деплоя кода. Пайплайны описываются в YAML-файлах (.github/workflows/). Запускаются по событиям (push, PR, schedule). 2000 минут/мес бесплатно для публичных репозиториев.

GitHub Actions — CI/CD платформа, интегрированная в GitHub. Позволяет автоматизировать любые рабочие процессы: тестирование кода при каждом push, сборку Docker-образов, деплой на сервер, публикацию npm-пакетов, отправку уведомлений.

Структура workflow

# .github/workflows/deploy.yml
name: Deploy to Production

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
      
      - name: Install and build
        run: |
          npm ci
          npm run build
      
      - name: Deploy via SSH
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.SERVER_HOST }}
          username: deploy
          key: ${{ secrets.SSH_PRIVATE_KEY }}
          script: |
            cd /var/www/myapp
            git pull
            npm ci --production
            pm2 restart myapp

Ключевые концепции

  • Workflow — YAML-файл, описывающий автоматизацию.
  • Job — набор шагов, выполняемых на одном runner.
  • Step — отдельная команда или Action.
  • Action — переиспользуемый блок (из GitHub Marketplace).
  • Secrets — зашифрованные переменные окружения.
  • Runner — виртуальная машина для выполнения jobs.

Marketplace

GitHub Marketplace содержит тысячи готовых Actions: docker/build-push-action, aws-actions/configure-aws-credentials, azure/webapps-deploy, appleboy/ssh-action. Повторяемость: checkout, build, test, deploy — стандартный пайплайн за 30 строк YAML.

История

GitHub Actions анонсирован на GitHub Universe в октябре 2018 года. Публичный релиз с YAML-синтаксисом — ноябрь 2019. Microsoft купила GitHub за $7.5 млрд в 2018 году. В 2024 году GitHub Actions — один из самых популярных CI/CD инструментов.

Связь с хостингом

GitHub Actions — стандартный инструмент деплоя на VDS: при push в main автоматически выполняется SSH-деплой, перезапуск сервисов, очистка кэша CDN. Secrets хранят SSH-ключи и токены безопасно. Бесплатный лимит (2000 мин/мес) покрывает большинство небольших проектов.

История GitHub Actions

GitHub Actions анонсированы в октябре 2018 года, публичный доступ — ноябрь 2019 года. В первые 24 часа создано более 1 миллиона workflows. Конкурирует с GitLab CI/CD, Bitbucket Pipelines, CircleCI, Jenkins. GitHub Actions Marketplace к 2023 году содержит более 15 000 action-пакетов. Бесплатный план: 2 000 минут/месяц для публичных репозиториев, бесплатно без ограничений. Поддерживает self-hosted runners на VPS.

GitHub Actions vs GitLab CI vs Jenkins

ПараметрGitHub ActionsGitLab CIJenkins
ХостингSaaSSaaS/SelfSelf-hosted
YAML конфигурациядадаGroovy/Declarative
Бесплатные минуты2 000/мес400/меснет (self-hosted)
Экосистема15 000+ actionsвстроенные templates1 800+ плагинов

Типичные ошибки

  • Хранение secrets в коде вместо GitHub Secrets — утечка при открытии репозитория.
  • Запуск на push без фильтрации веток — CI запускается на каждый коммит во всех ветках.
  • Кеширование зависимостей без привязки к lock-файлу — устаревший кеш скрывает проблемы сборки.

GitHub Actions поддерживает self-hosted runners — запуск workflow на собственном VPS вместо GitHub-инфраструктуры. Это важно для деплоя в закрытые сети или для экономии минут. Runner устанавливается командами из документации GitHub, подключается к репозиторию через токен. Кеш зависимостей (composer, npm) сохраняется через action actions/cache.

GitHub Actions поддерживает деплой на shared hosting через FTP-action и на Kubernetes-кластеры через kubectl action. Каждый workflow файл хранится в .github/workflows/.

Другие термины

GitHub Actions — что это, определение и как работает | Справочник — hostprofi.ru