ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Что такое GitHub Actions? (С 2 примерами)

Что такое GitHub Actions? (С 2 примерами)

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

С помощью GitHub Actions вы можете создавать автоматизированные конвейеры, которые можно тестировать, создавать и развертывать при каждом push-запросе в ваш репозиторий.

Непрерывная интеграция и непрерывная доставка (CI/CD) являются ключевыми практиками для современных команд разработчиков программного обеспечения. CI/CD позволяет автоматизировать создание, тестирование и развертывание изменений кода для ускорения циклов выпуска.

 

Что такое GitHub Actions?

GitHub Actions – относительно новый, но мощный проигрыватель в пространстве CI/CD. Он позволяет вам создавать пользовательские автоматизированные рабочие процессы непосредственно в ваших репозиториях GitHub.

 

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

Задания и шаги, определенные в рабочих процессах, могут использовать действия GitHub из marketplace или запускать пользовательские скрипты и контейнеры.

 

Ключевые концепции действий GitHub

Некоторые ключевые концепции GitHub Actions включают:

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

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

Событие

Событие – это конкретное действие, которое запускает рабочий процесс. Например, распространенными событиями являются pushpull_request и release. Вы можете настроить рабочий процесс для запуска при возникновении одного из этих событий в вашем репозитории.

Задание

Задание – это набор шагов в рабочем процессе, которые выполняются в одном и том же исполнителе. В рабочем процессе может быть несколько заданий, которые выполняются последовательно или параллельно.

Шаг

Шаг – это отдельная задача, которая может запускать команды или действия. Шаги можно использовать повторно, комбинировать и упорядочивать для создания заданий.

Экшен

Действия – это автономные команды, которые можно объединить в шаги и задания. GitHub предоставляет множество готовых действий для общих задач, или вы можете создавать свои собственные пользовательские действия.

Runner

Runner – это сервер, на котором установлено приложение GitHub Actions runner. Оно прослушивает доступные задания, выполняет по одному заданию за раз и сообщает о ходе выполнения, журналах и результатах в GitHub.

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

 

Действия GitHub: пример рабочего процесса

Пример рабочего процесса с 1 заданием

Вот пример рабочего процесса, который проверяет наличие версии ОС всякий раз, когда код передается в ветку:

name: GH Actions Demo

on: push


jobs:

  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: OS Release check
      run: cat /etc/os-release

 

Это простейший файл YAML рабочего процесса, содержащий только 1 задание. В рамках одного рабочего процесса может быть несколько заданий, и они могут выполняться параллельно или зависеть друг от друга.

В этом рабочем процессе есть 1 задание – сборка. Задание сборки проверяет код и проверяет версию ОС с помощью команды cat.

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

Изменить событие запуска или добавить дополнительные задания в GitHub Actions просто.

 

Пример рабочего процесса с 2 заданиями с зависимостью

Вот пример рабочего процесса, который содержит 2 задания. Задание “развертывание” зависит от задания “сборка”.

name: GH Action Demo

on: push

jobs:

  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Run Task 1
      run: echo ---- Running Task 1 ---

  deploy:
    runs-on: ubuntu-latest
    needs: [build]
    steps:
    - uses: actions/checkout@v2
    - name: Run Task 2 - Random Commands
      run: |
         echo ---- Running Task 2 ---
         pwd
         ls
         uname -a

 

В приведенном выше примере сначала будет запущено задание “build”, а после его успешного завершения будет запущено задание “deploy”. Это простой файл рабочего процесса, и вы можете включить в него любые команды, чтобы автоматизировать процесс развертывания.

Например, создание артефактов или образов docker в первом задании, а затем отправка их в реестр docker, ECR или в корзину S3.

На приведенном ниже скриншоте показано, как это выглядит в конвейере GitHub Actions.

Что такое GitHub Actions? (С 2 примерами)

 

Основные преимущества GitHub Actions

Некоторые ключевые преимущества GitHub Actions включают:

 

Заключение

Вкратце, GitHub Actions – это мощная платформа для автоматизации жизненного цикла разработки программного обеспечения. Используя рабочие процессы и готовые действия, вы можете легко создавать, тестировать и развертывать. Гибкий синтаксис YAML позволяет легко настраивать конвейеры для нужд вашего

Exit mobile version