Изучение непрерывной доставки с помощью 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?

Ключевые компоненты GitHub Actions:

  • рабочий процесс: последовательность шагов, хранящихся в формате YAML-файла. Рабочие процессы выполняют шаги после их активации вручную или (чаще) действиями, связанными с репозиторием, например отправками или слиянием ветвей.
  • задание: верхний элемент рабочего процесса. Задания в рабочем процессе могут выполняться параллельно или последовательно.
  • шаг: верхний элемент в задании. Каждый шаг — это задача или действие, выполняющее определенное действие, например выполнение скрипта или создание артефакта.
  • действие: предварительно созданное действие или настраиваемое действие (как упоминалось ранее). GitHub предоставляет marketplace, где можно найти широкий спектр предварительно созданных действий.
  • переменная: именованное значение, позволяющее хранить и повторно использовать данные в рабочем процессе. Вы можете создать собственные пользовательские переменные или использовать любые предопределенные переменные среды по умолчанию, которые автоматически задаются в каждом рабочем процессе.
  • секрет: зашифрованная переменная, которую можно использовать для хранения конфиденциальных данных.

Как создать рабочий процесс GitHub Actions?

Чтобы создать рабочий процесс GitHub Actions, выполните следующие действия.

  1. Создайте репозиторий. Для реализации рабочего процесса GitHub Actions потребуется учетная запись GitHub и репозиторий. По умолчанию новый репозиторий включает в себя ветвь по умолчанию с именем main.
  2. Создайте каталог .github/workflows. Рабочие процессы GitHub Actions должны находиться в каталоге .github/workflows в корневом каталоге репозитория.
  3. Создайте YAML-файл. Рабочий процесс GitHub Actions имеет формат YAML. Его имя является произвольным, но предполагается, что расширение будет установлено в .yml.
  4. Определите рабочий процесс в файле YAML и сохраните изменения. Файл YAML должен включать определение рабочего процесса.
  5. Зафиксируйте сохраненный файл в репозитории. Чтобы завершить изменения рабочего процесса, необходимо выполнить коммит, как и в случае с любым файлом, который является частью репозитория. Если вы решите создать рабочий процесс на локальном компьютере (а не с помощью веб-интерфейса 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 в лаборатории этого модуля.