Обзор
GitHub Actions — это платформа непрерывной интеграции и непрерывной поставки (CI/CD), которая позволяет автоматизировать конвейер сборки, тестирования и развертывания. Вы можете создавать рабочие процессы для построения и тестирования каждого запроса на вытягивание в репозиторий или развертывания объединенных запросов на вытягивание в рабочую среду.
GitHub Actions выходит за рамки только DevOps и позволяет запускать рабочие процессы, когда в репозитории происходят определенные события. Например, можно запустить рабочий процесс для автоматического добавления соответствующих меток, когда кто-то создает проблему в репозитории.
Для выполнения рабочих процессов для ваше предприятиенеобходимо разместить собственные виртуальные машины Linux, Windows или macOS. Локальные средства выполнения могут быть физическими, виртуальными, в контейнере, локальной среде или в облаке.
Дополнительные сведения о внедрении GitHub Actions в вашей организации см. в разделе Внедрение GitHub Actions на предприятии.
Компоненты GitHub Actions
Для рабочего процесса GitHub Actions можно настроить активацию при возникновении события в репозитории, например когда открывается запрос на вытягивание или создается проблема. Рабочий процесс содержит одно или несколько заданий, которые могут выполняться последовательно или параллельно. Каждое задание будет выполняться в собственном средстве выполнения виртуальной машины или в контейнере. Оно имеет один или несколько этапов, которые выполняют определяемый вами скрипт, или выполняют действие, которое является многократно используемым расширением для упрощения рабочего процесса.
Рабочие процессы
Рабочий процесс — это настраиваемый автоматизированный процесс, который будет выполнять одно или несколько заданий. Рабочие процессы определяются файлом YAML, возвращенным в репозиторий, и будут выполняться при активации события в репозитории. Либо их можно активировать вручную или по определенному расписанию.
Рабочие процессы определяются в каталоге .github/workflows
в репозитории, а репозиторий может иметь несколько рабочих процессов, каждый из которых может выполнять разные наборы задач. Например, у вас может быть один рабочий процесс для создания и тестирования запросов на вытягивание, другой рабочий процесс — для развертывания приложения при каждом создании выпуска, а также еще один рабочий процесс, добавляющий метку каждый раз, когда кто-то открывает новую проблему.
Вы можете ссылаться на рабочий процесс в другом рабочем процессе. Дополнительные сведения см. в разделе Повторное использование рабочих процессов.
Дополнительные сведения о рабочих процессах см. в разделе Использование рабочих процессов.
События
Событие — это определенное действие в репозитории, которое активирует выполнение рабочего процесса. Например, источником действия может быть GitHub, когда кто-то создает запрос на вытягивание, открывает проблему или отправляет фиксацию в репозиторий. Вы также можете активировать рабочий процесс для запуска по расписанию, путем публикации в REST API или вручную.
Полный список событий, которые можно использовать для активации рабочих процессов, см. в статье События, которые активируют рабочие процессы.
Задания
Задание — это набор шагов в рабочем процессе, который выполняется в том же средстве выполнения. Каждый этап — это скрипт оболочки, который будет выполняться, или действие, которое будет выполняться. Этапы выполняются по порядку и зависят друг от друга. Так как каждый этап выполняется в одном средстве выполнения, данные нескольких этапов могут быть общими. Например, может быть этап, который создает приложение, за ним следует этап, который проверяет созданное приложение.
Можно настроить зависимости задания от других заданий. По умолчанию задания не имеют зависимостей и выполняются параллельно друг с другом. Когда задание становится зависимым от другого задания, оно будет ждать завершения зависимого задания, прежде чем сможет начать выполнение. Например, у вас может быть несколько заданий сборки для различных архитектур без зависимостей, а также задание упаковки, зависящее от этих заданий. Задания сборки будут выполняться параллельно, а когда все они успешно завершатся, будет запущено задание упаковки.
Дополнительные сведения о заданиях см. в разделе Использование заданий.
Действия
Действие — это пользовательское приложение для платформы GitHub Actions, которое выполняет сложную, но часто повторяющуюся задачу. Действие позволяет сократить объем повторяющегося кода, написанного в файлах рабочего процесса. Действие может извлечь репозиторий Git из GitHub, настроить правильную цепочку инструментов для среды сборки или настроить проверку подлинности для поставщика облачных служб.
Можно написать собственные действия или найти действия для использования в рабочих процессах в GitHub Marketplace.
Чтобы совместно использовать действия в организации, не публикуя их в открытом доступе, можно сохранить действия во внутреннем репозитории, а затем разрешить этому репозиторию доступ к рабочим процессам GitHub Actions в других репозиториях, принадлежащих тому же или любому другому отделу в организации. Дополнительные сведения см. в разделе Сведения о доступе GitHub Actions к внутренним репозиториям репозиториям.
Дополнительные сведения см. в разделе Создание действий.
Средства выполнения
Средство выполнения тестов — это сервер, на котором выполняются рабочие процессы при их активации.Каждое средство выполнения может выполнять одно задание за раз. Необходимо разместить собственные средства выполнения для GitHub AE. Дополнительные сведения см. в разделе Размещение собственных средств выполнения.
Создание примера рабочего процесса
Для определения рабочего процесса GitHub Actions использует синтаксис YAML. Каждый рабочий процесс хранится как отдельный YAML-файл в репозитории кода в каталоге с именем .github/workflows
.
Можно создать пример рабочего процесса в репозитории, который автоматически активирует ряд команд при отправке кода. В этом рабочем процессе GitHub Actions извлекает отправленный код, устанавливает платформу тестирования bats и выполняет базовую команду для вывода версии bats: bats -v
.
-
В репозитории создайте каталог
.github/workflows/
для хранения файлов рабочего процесса. -
В каталоге
.github/workflows/
создайте файл с именемlearn-github-actions.yml
и добавьте следующий код.YAML name: learn-github-actions on: [push] jobs: check-bats-version: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: '14' - run: npm install -g bats - run: bats -v
-
Зафиксируйте эти изменения и отправьте их в репозиторий GitHub.
Новый файл рабочего процесса GitHub Actions теперь установлен в репозитории и будет выполняться автоматически каждый раз, когда кто-то отправляет изменения в репозиторий. Дополнительные сведения о журнале выполнения рабочего процесса см. в разделе "Просмотр действия для выполнения рабочего процесса".
Общие сведения о файле рабочего процесса
Чтобы понять, как используется синтаксис YAML для создания файла рабочего процесса, просмотрите объяснение каждой строки вводного примера.
Код | Описание |
---|---|
|
Дополнительные - Имя рабочего процесса, которое будет отображаться на вкладке "Действия" репозитория GitHub. |
|
Указывает триггер для этого рабочего процесса. В этом примере используется событие push , поэтому выполнение рабочего процесса запускается каждый раз, когда кто-то отправляет изменения в репозиторий или объединяет запрос на вытягивание. Он активируется при отправке в каждую ветвь. Примеры синтаксиса, который выполняется только при отправке в определенные ветви, пути или теги, см. в статье «Синтаксис рабочего процесса для GitHub Actions».
|
|
Объединяет все задания, выполняемые в рабочем процессе learn-github-actions .
|
|
Определяет задание с именем check-bats-version . Дочерние ключи определяют свойства задания.
|
|
Настраивает задание для выполнения в последней версии средства выполнения Ubuntu Linux. Это означает, что задание будет выполняться на новой виртуальной машине, размещенной в GitHub. Примеры синтаксиса, где используются другие средства выполнения тестов, см. в статье «Синтаксис рабочего процесса для GitHub Actions». |
|
Объединяет все этапы, выполняемые в рабочем процессе check-bats-version . Каждый элемент, вложенный в этот раздел, является отдельным действием или скриптом оболочки.
|
|
Ключевое слово uses указывает, что этот этап будет выполнять v3 действия actions/checkout . Это действие, которое извлекает репозиторий в средство выполнения, позволяя выполнять скрипты или другие действия в коде (например, средства сборки и тестирования). Действие извлечения следует использовать каждый раз, когда рабочий процесс будет выполняться в коде репозитория.
|
|
Этот этап использует действие actions/setup-node@v3 для установки указанной версии Node.js (в этом примере используется версия 14). В этом случае команды node и npm помещаются в PATH .
|
|
Ключевое слово run указывает заданию выполнить команду в средстве выполнения. В этом случае используется npm для установки пакета тестирования ПО bats .
|
|
Наконец, выполняется команда bats с параметром, которая выводит версию программного обеспечения.
|
Визуализация файла рабочего процесса
На этой схеме показан только что созданный файл рабочего процесса и порядок организации компонентов GitHub Actions в иерархии. Каждый этап выполняет одно действие или скрипт оболочки. Этапы 1 и 2 выполняют действия, а этапы 3 и 4 выполняют скрипты оболочки. Дополнительные предварительно созданные действия для рабочих процессов см. в разделе Поиск и настройка действий.
Просмотр действия для выполнения рабочего процесса
При активации рабочего процесса создается запуск рабочего процесса, который выполняет рабочий процесс. После запуска рабочего процесса можно увидеть граф визуализации хода выполнения и просмотреть действие на каждом этапе в GitHub.
-
На ваше предприятие перейдите на главную страницу репозитория. 1. Под именем репозитория щелкните Действия.
1. На левой боковой панели щелкните нужный рабочий процесс. 1. В списке запусков рабочего процесса щелкните имя запуска, чтобы просмотреть сводку по выполнению рабочего процесса. -
На левой боковой панели или в графе визуализации щелкните нужное задание.
-
Чтобы просмотреть результаты шага, щелкните его.
Дальнейшие действия
GitHub Actions помогает автоматизировать практически все аспекты процессов разработки приложений. Вы готовы начать работу? Далее приведены некоторые полезные ресурсы для выполнения следующих этапов работы с GitHub Actions.
- Сведения о рабочих процессах непрерывной интеграции (CI) для сборки и тестирования кода см. в разделе Автоматизация сборок и тестов.
- Сведения о сборке и публикации пакетов см. в разделе Публикация пакетов.
- Сведения о развертывании проектов см. в разделе Развертывание.
- Сведения об автоматизации задач и процессов в GitHub см. в разделе Управление проблемами и запросами на вытягивание.
- Примеры, демонстрирующие более сложные функции GitHub Actions, включая многие из приведенных выше вариантов использования, см. в разделе Примеры. Можно просмотреть подробные примеры, которые объясняют, как протестировать код в средстве выполнения, получить доступ к интерфейсу командной строки GitHub и использовать дополнительные функции, такие как параллелизм и матрицы тестирования.
Обращение в службу поддержки
Если вам нужна помощь, связанная с конфигурацией рабочего процесса, например, с синтаксисом, средствами выполнения, размещенными в GitHub, или действиями по сборке, найдите существующий раздел или создайте новый раздел в категории GitHub Community GitHub Actions и GitHub Packages.
Если вы хотите оставить отзыв или запрос на функцию для GitHub Actions, это можно сделать в Обсуждения сообщества GitHub для GitHub Actions.
В каждом из следующих случаев, независимо от того, относится ли ваше использование или предполагаемое использование к категориям ограничений использования, обратитесь к владелец предприятия:
- если вы считаете, что ваша учетная запись была ограничена по ошибке;
- если при выполнении одного из действий возникает непредвиденная ошибка;
- если возникает ситуация, когда существующее поведение противоречит ожидаемому, но не всегда задокументированному поведению.