Skip to main content

Общие сведения о GitHub Actions

Изучите основы GitHub Actions, включая основные понятия и основную терминологию.

Note

GitHubразмещенные в данный момент средства выполнения не поддерживаются в GitHub Enterprise Server. Дополнительные сведения о планируемой поддержке в будущем см. в GitHub public roadmap.

Обзор

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

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

Для запуска рабочих процессов для ваш экземпляр GitHub Enterprise Serverнеобходимо разместить собственные виртуальные машины Linux, Windows или macOS. Локальные средства выполнения могут быть физическими, виртуальными, в контейнере, локальной среде или в облаке.

Дополнительные сведения о вводе GitHub Actions в вашей организации см. в разделе Внедрение GitHub Actions на предприятии.

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

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

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

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

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

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

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

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

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

События

Событие — это определенное действие в репозитории, которое активирует выполнение рабочего процесса. Например, действие может возникать из GitHub при создании запроса на вытягивание, открытии проблемы или отправке фиксации в репозиторий. Вы также можете активировать рабочий процесс для запуска по расписанию, разместив в REST API или вручную.

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

Работы

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

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

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

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

Действия

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

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

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

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

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

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

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

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

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

Дополнительные материалы