s

GitHub Actions: полное руководство по установке и настройке

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

Что такое GitHub Actions?

GitHub Actions позволяет автоматизировать задачи непосредственно в вашем репозитории GitHub. Вы можете создавать рабочие процессы (workflows), которые будут выполняться при определенных событиях, таких как push, pull request или создание релиза. Рабочие процессы состоят из одного или нескольких заданий (jobs), которые выполняются на виртуальных машинах GitHub или ваших собственных runner'ах.

Установка GitHub Actions

GitHub Actions уже интегрирован в ваш репозиторий GitHub, поэтому дополнительная установка не требуется. Все, что вам нужно — это создать файл workflow в каталоге .github/workflows вашего репозитория. Давайте рассмотрим, как это сделать.

Создание первого workflow

1. Перейдите в ваш репозиторий на GitHub.
2. Создайте каталог .github/workflows, если его еще нет.
3. Добавьте новый файл с расширением .yml, например, ci.yml.
4. Определите ваш workflow в этом файле.

Пример простого workflow

name: CI

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

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Run a one-line script
      run: echo Hello, world!

Настройка GitHub Actions

GitHub Actions предоставляет множество возможностей для настройки ваших рабочих процессов. Рассмотрим основные аспекты настройки.

Выбор runner'а

GitHub предоставляет виртуальные машины с различными операционными системами для выполнения ваших заданий. Вы можете указать нужную ОС с помощью параметра runs-on:

Использование действий (actions)

GitHub Actions позволяет использовать готовые действия из Marketplace. Например, действие actions/checkout@v2 используется для клонирования вашего репозитория. Вы можете найти множество полезных действий в GitHub Marketplace.

Переменные среды и секреты

Вы можете использовать переменные среды в ваших workflow. Для хранения чувствительных данных, таких как токены API, используйте секреты:

env:
  MY_TOKEN: ${{ secrets.MY_TOKEN }}

Секреты можно добавить в настройках вашего репозитория (Settings → Secrets → New repository secret).

Продвинутые возможности

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

Матрица сборки

Матрица позволяет запускать задания с разными комбинациями параметров. Например, вы можете тестировать ваше приложение на разных версиях Node.js:

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [10.x, 12.x, 14.x]
    steps:
    - uses: actions/checkout@v2
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.node-version }}

Кэширование зависимостей

Для ускорения ваших workflow вы можете кэшировать зависимости:

- name: Cache node modules
  uses: actions/cache@v2
  with:
    path: ~/.npm
    key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
    restore-keys: |
      ${{ runner.os }}-node-

Артефакты

Вы можете сохранять файлы между заданиями с помощью артефактов:

- name: Upload artifact
  uses: actions/upload-artifact@v2
  with:
    name: my-artifact
    path: path/to/file

Лучшие практики

Вот несколько советов по эффективному использованию GitHub Actions:

  1. Используйте кэширование для ускорения workflow
  2. Разделяйте сложные workflow на несколько заданий
  3. Используйте матрицу для тестирования на разных платформах
  4. Храните секретные данные в Secrets
  5. Регулярно обновляйте используемые actions до последних версий

Заключение

GitHub Actions — это мощный инструмент для автоматизации ваших рабочих процессов. В этой статье мы рассмотрели основы установки и настройки GitHub Actions, создание простых workflow и использование продвинутых функций. Теперь вы можете начать автоматизировать свои процессы разработки и сэкономить время на рутинных задачах.

Для более глубокого изучения GitHub Actions рекомендуется ознакомиться с официальной документацией и примерами workflow в популярных open-source проектах.

Добавлено: 23.05.2025