Изучение непрерывной доставки с помощью GitHub Actions
GitHub Actions предоставляет механизм реализации рабочих процессов доставки программного обеспечения с помощью возможностей платформы GitHub. Это был бы оптимальный подход CI/CD для организации в сценарии нашего примера, учитывая планы использования GitHub для развития DevOps. В этом уроке вы узнаете об использовании GitHub Actions для создания и запуска рабочих процессов CI/CD.
Что такое GitHub Actions?
В контексте GitHub термин действия фактически имеет двойное значение. Первый (прописные действия) представляет службу GitHub, которая обеспечивает возможность реализации рабочих процессов CI/CD. Второй элемент (actions, написанный с маленькой буквы) определяет повторно используемые единицы, которые можно включить в рабочие процессы для доставки определенной функциональности, такой как выполнение скриптов и исполняемых файлов, создание и загрузка артефактов или настройка доступа к подписке Azure.
Каковы основные компоненты GitHub Actions?
Ключевые компоненты GitHub Actions:
- рабочий процесс: последовательность шагов, хранящихся в формате YAML-файла. Рабочие процессы выполняют шаги после их активации вручную или (чаще) действиями, связанными с репозиторием, например отправками или слиянием ветвей.
- задание: верхний элемент рабочего процесса. Задания в рабочем процессе могут выполняться параллельно или последовательно.
- шаг: верхний элемент в задании. Каждый шаг — это задача или действие, выполняющее определенное действие, например выполнение скрипта или создание артефакта.
- действие: предварительно созданное действие или настраиваемое действие (как упоминалось ранее). GitHub предоставляет marketplace, где можно найти широкий спектр предварительно созданных действий.
- переменная: именованное значение, позволяющее хранить и повторно использовать данные в рабочем процессе. Вы можете создать собственные пользовательские переменные или использовать любые предопределенные переменные среды по умолчанию, которые автоматически задаются в каждом рабочем процессе.
- секрет: зашифрованная переменная, которую можно использовать для хранения конфиденциальных данных.
Как создать рабочий процесс GitHub Actions?
Чтобы создать рабочий процесс GitHub Actions, выполните следующие действия.
- Создайте репозиторий. Для реализации рабочего процесса GitHub Actions потребуется учетная запись GitHub и репозиторий. По умолчанию новый репозиторий включает в себя ветвь по умолчанию с именем main.
- Создайте каталог .github/workflows. Рабочие процессы GitHub Actions должны находиться в каталоге .github/workflows в корневом каталоге репозитория.
- Создайте YAML-файл. Рабочий процесс GitHub Actions имеет формат YAML. Его имя является произвольным, но предполагается, что расширение будет установлено в .yml.
- Определите рабочий процесс в файле YAML и сохраните изменения. Файл YAML должен включать определение рабочего процесса.
- Зафиксируйте сохраненный файл в репозитории. Чтобы завершить изменения рабочего процесса, необходимо выполнить коммит, как и в случае с любым файлом, который является частью репозитория. Если вы решите создать рабочий процесс на локальном компьютере (а не с помощью веб-интерфейса GitHub), вы клонируйте репозиторий после его создания, примените и зафиксируйте изменения локально, а затем отправьте их в GitHub.
Ниже приведен простой пример рабочего процесса GitHub Actions, отображающего сообщение Hello из GitHub Actions! после выполнения.
name: Simple GitHub Actions workflow
on: [push]
jobs:
say_hello:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Run Build Script
run: |
echo "Hello, GitHub Actions!"
Первая строка рабочего процесса определяет его имя, которое отображается на вкладке "Действия репозитория" в веб-интерфейсе GitHub. Строка on: [push] обозначает событие, которое активирует выполнение рабочего процесса (в данном случае отправка в любую ветвь в репозитории рабочего процесса).
Рабочий процесс состоит из одного задания с именем say_hello, как указано в содержимом jobs: после строки. Следующая строка (runs-on: ubuntu-latest) определяет тип операционной системы, которая должна использоваться для выполнения задания. Выбор зависит от задач, которые содержит задание, и, в данном случае, задание будет выполняться также в любой операционной системе под управлением Windows.
Задание состоит из двух шагов, как показано в содержимом после строки steps:. Синтаксис шага поддерживает необязательный атрибут имени, который может помочь понять назначение шага при проверке выполнения рабочего процесса. Оставшаяся часть синтаксиса зависит от типа действия, которое предназначено для выполнения данного шага. В этом примере первым шагом является извлечение текущего репозитория (который скачивает содержимое репозитория в систему, где выполняется задание), а второй выполняет команду echo , которая отображает понятное сообщение.
Чтобы интегрировать функции CI/CD в рабочие процессы GitHub Actions, вы добавите ряд шагов (в одном или нескольких заданиях), которые выполняют автоматизированные действия сборки, тестирования и развертывания. После активации выполнения рабочего процесса можно отслеживать его ход, перейдя на вкладку "Действия" в репозитории GitHub.
Заметка
Вы сможете работать с более значимыми примерами рабочих процессов GitHub Actions, которые иллюстрируют интеграцию CI/CD в лаборатории этого модуля.