Skip to main content

Понимание GitHub Actions

Ознакомьтесь с основами основных понятий и основными терминологиями в GitHub Actions.

В этой статье

Обзор

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

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

GitHub предоставляет виртуальные машины Linux, Windows и macOS для запуска ваших рабочих процессов, или вы можете размещать собственные раннеры в собственном дата-центре или облачной инфраструктуре.

Компоненты GitHub Actions

Для рабочего процесса GitHub Actions можно настроить активацию при возникновении события в репозитории, например когда открывается запрос на вытягивание или создается проблема. Рабочий процесс содержит одно или несколько заданий, которые могут выполняться последовательно или параллельно. Каждое задание будет выполняться в собственном средстве выполнения виртуальной машины или в контейнере. Оно имеет один или несколько этапов, которые выполняют определяемый вами скрипт, или выполняют действие, которое является многократно используемым расширением для упрощения рабочего процесса.

Схема триггера события Runner 1 для запуска задания 1, которая активирует Runner 2 для запуска задания 2. Каждая из заданий разбивается на несколько шагов.

Рабочие процессы

Рабочий процесс — это настраиваемый автоматизированный процесс, который будет выполнять одно или несколько заданий. Рабочие процессы определяются файлом YAML, возвращенным в репозиторий, и будут выполняться при активации события в репозитории. Либо их можно активировать вручную или по определенному расписанию.

Рабочие процессы определяются в каталоге .github/workflows в репозитории. Репозиторий может иметь несколько рабочих процессов, каждый из которых может выполнять различные задачи, такие как:

  • Создание и тестирование запросов на вытягивание
  • Развертывание приложения при каждом создании выпуска
  • Добавление метки при открытии новой проблемы

Вы можете ссылаться на рабочий процесс в другом рабочем процессе. Дополнительные сведения см. в разделе Повторное использование рабочих процессов.

Дополнительные сведения см. в разделе Написание рабочих процессов.

События

          **Событие — это определенное действие** в репозитории, которое активирует **выполнение рабочего процесса**. Например, действие может возникать из GitHub при создании запроса на вытягивание, открытии проблемы или отправке фиксации в репозиторий. Вы также можете активировать рабочий процесс для запуска по [расписанию](/actions/using-workflows/events-that-trigger-workflows#schedule), [разместив в REST API](/rest/repos/repos#create-a-repository-dispatch-event) или вручную.

Полный список событий, которые можно использовать для активации рабочих процессов, см. в статье События, которые активируют рабочие процессы.

Работы

          **Задание** — это набор **шагов** в рабочем процессе, который выполняется в том же **средстве выполнения**. Каждый этап — это скрипт оболочки, который будет выполняться, или **действие**, которое будет выполняться. Этапы выполняются по порядку и зависят друг от друга. Так как каждый этап выполняется в одном средстве выполнения, данные нескольких этапов могут быть общими. Например, может быть этап, который создает приложение, за ним следует этап, который проверяет созданное приложение.

Можно настроить зависимости задания с другими заданиями; По умолчанию задания не имеют зависимостей и выполняются параллельно. Когда задание принимает зависимость от другого задания, он ожидает завершения зависимого задания перед выполнением.

Вы также можете использовать матрицу **** для выполнения одного задания несколько раз, каждая из которых имеет разные сочетания переменных, например операционных систем или языковых версий.

Например, можно настроить несколько заданий сборки для разных архитектур без зависимостей заданий и задания упаковки, зависящее от этих сборок. Задания сборки выполняются параллельно и после успешного выполнения задания упаковки.

Дополнительные сведения см. в разделе Выбор того, что делает рабочий процесс.

Действия

Действие **** — это предварительно определенный, многократно используемый набор заданий или кода, выполняющий определенные задачи в рабочем процессе, уменьшая объем повторяющегося кода, который вы записываете в файлы рабочего процесса. Действия могут выполнять такие задачи, как:

  • Извлечение репозитория Git из GitHub
  • Настройка правильной цепочки инструментов для среды сборки
  • Настройка проверки подлинности для поставщика облачных служб

Можно написать собственные действия или найти действия для использования в рабочих процессах в GitHub Marketplace.

Дополнительные сведения о действиях см. в разделе Повторное выполнение автоматизации.

Средства выполнения

          **Средство выполнения** — это сервер, на котором выполняются рабочие процессы при их активации. Каждый средство выполнения может выполнять одно **задание** одновременно.

GitHub предоставляет Ubuntu Linux, Microsoft Windows и macOS для запуска ваших workflows. Каждый рабочий процесс выполняется в новой подготовленной виртуальной машине.

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

Если вам нужна другая операционная система или требуется определенная конфигурация оборудования, можно разместить собственные средства выполнения.

Дополнительные сведения о локальных бегунахсм. в разделе Управление локальными средствами выполнения.

Следующие шаги

GitHub Actions помогает автоматизировать практически все аспекты процессов разработки приложений. Готовы приступить к работе? Далее приведены некоторые полезные ресурсы для выполнения следующих этапов работы с GitHub Actions.