Вернуться к статьям

Пошаговый гид: настройка и использование GitHub Actions для автоматизации CI/CD

Программирование 14.02.2026 6 просмотров

Ключевые слова

github actions ci/cd автоматизация workflow тестирование деплой python docker ssh git инструменты разработки
Пошаговый гид: настройка и использование GitHub Actions для автоматизации CI/CD

Автоматизация рабочих процессов разработки — ключ к быстрой и надежной поставке программного продукта. GitHub Actions позволяет бесплатно внедрить CI/CD прямо в ваш репозиторий без сложной интеграции сторонних сервисов и настройки серверов. Эта статья предназначена для тех, кто хочет сделать первые шаги с GitHub Actions, получить практический опыт создания рабочих процессов и ознакомиться с best practices.

Что такое GitHub Actions и зачем он нужен?

GitHub Actions — это встроенный инструмент GitHub для автоматизации задач, связанных с разработкой. Он позволяет запускать любые действия: тестирование, сборку, деплой и другие задачи — по событиям (например, push, pull request, release).

  • Бесплатно для публичных репозиториев
  • Легкая интеграция с репозиториями на GitHub
  • Большая библиотека готовых действий и шаблонов
  • Поддержка разных операционных систем и языков

В результате автоматизация рутинных процессов становится проще, ускоряет цикл разработки и сокращает число ошибок.

Быстрый старт: первый workflow для тестирования

Давайте создадим базовый workflow, который запускает тесты на Python каждый раз при push или pull request:

Шаг 1: Создание yaml-файла workflow

  1. В корне репозитория создайте папку .github/workflows.
  2. Добавьте файл ci.yml с содержимым:
name: Python CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.10'  # Укажите вашу версию Python
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt
      - name: Run tests
        run: |
          pytest

Этот workflow автоматически:

  • Запускается на каждый push или pull request в ветку main
  • Клонирует ваш код
  • Устанавливает Python и зависимости
  • Запускает тесты через pytest

Шаг 2: Добавьте файл и закоммитьте

  1. Закоммитьте файл ci.yml и запушьте его в GitHub
  2. Перейдите на вкладку Actions в своем репозитории — первый запуск workflow начнется автоматически

Шаг 3: Проверка результатов

На вкладке Actions вы увидите подробный лог и статус: прошел ли workflow успешно, и если нет — на каком этапе возникла ошибка.

Расширяем возможности: сборка и деплой

Вы можете не только запускать тесты, но и собирать, публиковать, деплоить приложения. Пример для деплоя stateless веб-приложения на сервер через SSH:

Добавление шага деплоя

      - name: Deploy to Server
        uses: appleboy/ssh-action@v0.1.6
        with:
          host: ${{ secrets.SSH_HOST }}
          username: ${{ secrets.SSH_USER }}
          key: ${{ secrets.SSH_KEY }}  # приватный ключ добавьте в Secrets
          script: |
            cd /var/www/myapp
            git pull origin main
            systemctl restart myapp

Для безопасного использования SSH ключей воспользуйтесь GitHub Secrets (настройте их на странице Settings → Secrets вашего репозитория).

Автоматизация публикации Docker образов

Другой популярный сценарий — публикация образа в DockerHub:

      - name: Log in to DockerHub
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.DOCKERHUB_USER }}
          password: ${{ secrets.DOCKERHUB_PASS }}
      - name: Build and push docker image
        run: |
          docker build -t myapp:${{ github.sha }} .
          docker push myapp:${{ github.sha }}

Советы и best practices

  • Не храните секретные данные в workflow — используйте Secrets
  • Деляйте задачи по отдельным jobs или workflow для чистоты
  • Используйте готовые Actions из GitHub Marketplace
  • Добавляйте step с кешированием actions/cache, чтобы ускорить установку зависимостей
  • Называйте файлы workflow понятно: ci.yml, deploy.yml, lint.yml
  • Подробнее о синтаксисе читайте в официальной документации

Заключение

GitHub Actions — мощный и гибкий инструмент, способный автоматизировать любые задачи CI/CD без дополнительных сервисов. С его помощью вы можете не только поддерживать качество кода через автотесты, но и ускорить публикацию продукта, сделать процесс деплоя контролируемым и повторяемым. Начните с базового workflow, постепенно внедряйте новые шаги — и вы быстро увидите, насколько приятнее и эффективнее становится работа над проектом.