Изучите основы действий GitHub, включая основные концепции и важную терминологию.
Обзор
GitHub Actions — это отличный помощник для автоматизации ваших задач в рамках поддержания жизненного цикла разработки вашего ПО. Действия GitHub управляются событиями — это означает, что вы можете запускать серию команд сразу же после того, как произошло указанное уникальное событие. Например, каждый раз, когда кто-то создает пул-реквест для репозитория, вы можете автоматически запускать команду, которая выполняет сценарий тестирования ПО.
Выше приведенная схема показывает, как можно использовать GitHub Actions для запуска сценариев тестирования ПО в автоматическом режиме. Событие само запустит рабочий процесс , который содержит задание . Затем задание использует шаги для управления порядком выполняемых шагов. Эти шаги являются набором команд, которые и автоматизируют тестирование вашего программного обеспечения.
Компоненты GitHub Actions
На ниже приведенной схеме, нарисовано несколько ключевых компонентов Github Actions, которые работают вместе над выполнением задания. Как вы можете видеть, эти компоненты взаимодействуют друг с другом.
Рабочие процессы
Рабочий процесс — это автоматизированная процедура, которую вы добавляете в свой репозиторий в виде файла. Рабочие процессы, могут состоять из одного или даже нескольких заданий, могут быть запланированы или инициализированы событием. Рабочий процесс можно использовать не только для сборки, а также для тестирования, упаковки, выпуска или доставки(развертывания) кода на GitHub. Вы можете ссылаться на рабочий процесс в любом, другом рабочем процессе.
События
Событие — это какое-то конкретное действие, которое как правило запускает рабочий процесс.Например активность может быть вызвана из GitHub, если вы или ваши коллеги решили отправить фиксацию в репозиторий или когда создали новую проблему или по созданию запроса на слияние. Для отслеживания, вы можете использовать веб — перехватчик (WebHooks) отправки в репозиторий для запуска вашего процесса работы, при возникновении внешнего события.
Jobs(Джобы, Работа, Задание)
Задание — это определенный набор шагов, которые выполняет один и тот же бегун(Runner). Если в рабочем процессе несколько заданий, то они будут запускаться параллельно. Вы можете настроить свой процесс для последовательного выполнения своих рабочих заданий. Для примера: вы можете иметь два последовательных задания, которые создают и тестируют ваш код, причем тестовое задание зависит от успешного статуса задания сборки. Если задание сборки потерпит неудачу, то тестовое задание запущенно не будет.
Шаги
Шаги — это отдельные задачи, вы можете запускать какие — то команды в задании. Шаг может быть действием или команды оболочки.
Шаг — это отдельная задача, которая может запускать команды в задании. Шаг может быть действием или командой оболочки. Каждый шаг задания выполняется одним и тем же исполнителем, что позволяет действиям в этом задании обмениваться данными друг с другом.
Действия(Actions)
Действия — это отдельный набор команд, которые и объединяются в шаги для создания каких — либо заданий. Действия — это самый маленький строительный блок вашего рабочего процесса CI/CD. Вы можете создавать свои собственные действия или воспользоваться уже существующими действиями, которые созданы сообществом GitHub. Чтобы использовать действия в своем рабочем процесс, вы должны прежде включить его как шаг.
Бегуны(Runners)
Бегун — он же Runner — это сервер на котором установлено приложение — исполнитель(агент) GitHub Actions. Вы можете использовать бегуны, размещенные на серверах Github, или вы можете разместить свой собственный бегун. Бегун отслеживает наличие доступных заданий, запускает какое — то одно задание за раз и сообщает о ходе выполнения, ведет журналы и сообщает о результатах выполнения обратно на GitHub. Бегуны которые расположены на GitHub, основаны на Ubuntu Linux, Microsoft Windows и Mac OS, и каждой виртуальное задание выполняется в новой виртуальной среде. Для получения информации о бегунах которые размещены на GitHube, см «Данную статью». Если вам нужна другая ОС или конфигурация оборудования, вы можете разместить бегуна на своем железе. Хочешь знать как сделать? Данный материал уже тут.
Создайте пример рабочего процесса
GitHub Actions использует синтаксис YAML для определения событий, заданий и шагов. Эти файлы YAML хранятся в вашем репозитории кода в каталоге с именем .github/workflows
.
Вы можете создать пример рабочего процесса в своем репозитории, который автоматически запускает серию команд при каждой отправке кода. В этом рабочем процессе GitHub Actions проверяет отправленный код, устанавливает зависимости программного обеспечения и запускается bats -v
.
- В своем репозитории создайте
.github/workflows/
каталог для хранения файлов рабочего процесса. - В
.github/workflows/
каталоге создайте новый файл с именемlearn-github-actions.yml
и добавьте следующий код.name: learn-github-actions on: [push] jobs: check-bats-version: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: node-version: '14' - run: npm install -g bats - run: bats -v
- Зафиксируйте эти изменения и отправьте их в свой репозиторий GitHub.
Ваш новый файл рабочего процесса GitHub Actions теперь установлен в вашем репозитории и будет запускаться автоматически каждый раз, когда кто-то отправляет изменение в репозиторий. Подробные сведения об истории выполнения задания см. В разделе « Просмотр активности рабочего процесса» .
Понимание файла рабочего процесса
Чтобы помочь вам понять, как синтаксис YAML используется для создания файла рабочего процесса, в этом разделе объясняется каждая строка примера введения:
name: learn-github-actions | Необязательно — имя рабочего процесса, которое будет отображаться на вкладке «Действия» в репозитории GitHub. |
on: [push] | Укажите событие, которое автоматически запускает файл рабочего процесса. В этом примере используется push событие, поэтому задания запускаются каждый раз, когда кто-то отправляет изменение в репозиторий. Вы можете настроить рабочий процесс для работы только с определенными ветвями, путями или тегами. Примеры синтаксиса, включая или исключая ветви, пути или теги, см. В разделе «Синтаксис рабочего процесса для действий GitHub». |
jobs: | Группирует вместе все задания, которые выполняются в learn-github-actions файле рабочего процесса. |
check-bats-version: | Определяет имя check-bats-version задания, хранящегося в jobs разделе. |
runs-on: ubuntu-latest | Настраивает задание для запуска в среде выполнения Ubuntu Linux. Это означает, что задание будет выполняться на новой виртуальной машине, размещенной на GitHub. Примеры синтаксиса с использованием других бегунов см. В разделе «Синтаксис рабочего процесса для действий GitHub». |
steps: | Сгруппирует вместе все шаги, выполняемые в check-bats-version работе. Каждый элемент, вложенный в этот раздел, представляет собой отдельное действие или команду оболочки. |
- uses: actions/checkout@v2 | uses Ключевое слово указывает работу , чтобы получить v2 действия сообщества по имени . Это действие, которое проверяет ваш репозиторий и загружает его в runner, позволяя вам запускать действия с вашим кодом (например, инструменты тестирования). Вы должны использовать действие checkout каждый раз, когда ваш рабочий процесс будет работать с кодом репозитория или вы используете действие, определенное в репозитории. actions/checkout@v 3 |
- uses: actions/setup-node@v2 with: node-version: '14' | На этом шаге используется действие для установки указанной версии программного пакета на средстве выполнения, что дает вам доступ к команде. actions/ node npm |
- run: npm install -g bats | run Ключевое слово указывает работу , чтобы выполнить команду на бегуна. В этом случае вы используете npm для установки bats пакета тестирования программного обеспечения. |
- run: bats -v | Наконец, вы запустите bats команду с параметром, который выводит версию программного обеспечения. |
Визуализация файла рабочего процесса
На этой схеме вы можете увидеть только что созданный файл рабочего процесса и то, как компоненты GitHub Actions организованы в иерархию. Каждый шаг выполняет отдельное действие или команду оболочки. В шагах 1 и 2 используются предварительно созданные действия сообщества. Шаги 3 и 4 запускают команды оболочки непосредственно на бегунке. Чтобы найти дополнительные предварительно созданные действия для ваших рабочих процессов, см. « Поиск и настройка действий ».
Просмотр активности на вакансии
Как только ваша работа будет запущена, вы можете увидеть график визуализации хода выполнения и просмотреть активность каждого шага на GitHub.
- На GitHub.com перейдите на главную страницу репозитория.
- Под именем репозитория щелкните Действия .
- На левой боковой панели щелкните рабочий процесс, который хотите просмотреть.
- В разделе «Выполнение рабочего процесса» щелкните имя запуска, которое вы хотите просмотреть.
- В разделе » Задания» или на графике визуализации щелкните задание, которое хотите просмотреть.
- Просматривайте результаты каждого шага.