Как использовать GitHub Actions

Нейросети, ИИ и Роботы

Технологии / Нейросети, ИИ и Роботы 176 Просмотров

Github Actions-это инструмент непрерывной интеграции (CI) + непрерывного развертывания (CD) от Github.

CI и CD-это напыщенные термины, но они просто означают следующее:

  • Непрерывная интеграция: люди нажимают на репозиторий Git, и код тестируется автоматически.
  • Непрерывная доставка: выталкиваемый код (в идеале проверенный и без ошибок) затем выталкивается на сервер или хостинг, чтобы он стал доступным для пользователей.

Хотя Github Actions-один из многих инструментов CI + CD, он, вероятно, самый простой в использовании (по моему опыту). К сожалению, документы Github Actions docs — это полный беспорядок-они постоянно указывают вам на разные страницы, ожидая, что вы все прочитаете (и все поймете), когда все еще пытаетесь настроить свое первое действие.

Сегодня я хочу поделиться основами использования действий Github, чтобы вам было легко ими пользоваться.

Настройка Вашего Первого Действия На Github

Действия Github живут в .github/workflowsпапке. Вы можете создать любое количество действий. Каждое действие-это файл. Поскольку действия Github используют формат YAML, убедитесь, что вы заканчиваете имя файла ymlрасширением.

- .github - workflows - action1.yml - action2.yml 

Файл действия можно назвать как угодно. Эти имена файлов появятся на вкладке Действия после выполнения действия. (Я покажу вам, где немного позже).

В файле действий Github вам понадобятся три свойства.

  • name — имя действия Github (чтобы вы знали, какое действие выполняется)
  • on — когда запустить это мероприятие.
  • jobs — что делать, когда мы запустим эту акцию.

Минимальная конфигурация выглядит следующим образом:

name: first-github-action on: [push] jobs:   write-to-console:     runs-on: ubuntu-latest     steps:       - run: echo 'Hello world!' 

Это действие выполняется, когда вы pushчто-то загружаете в свой репозиторий Github.

Просмотр действия

Вы можете просмотреть действие Github на вкладке Действия.

&

расположение вкладки действий github

&

Как только вы окажетесь на этой вкладке действий, вы увидите название ваших действий на левой боковой панели. Это соответствует nameполю, которое вы использовали для файла действий.

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

&

github run actions location

&

Примечание: рабочие процессы и действия означают здесь одно и то же — я думаю, что Github использует термин “рабочие процессы”, потому что наличие термина "действия" везде приводит к путанице.

Если вы нажмете на запущенный рабочий процесс, то увидите сводку о том, что произошло. Именно здесь jobпоявляется ваше имя файла и действия.

&

имя файла задания и действия

&

Если вы нажмете на задание, вы увидите страницу, которая регистрирует то, что произошло во время этого рабочего процесса. (Вы можете нажать на любую из write-to-consoleкнопок здесь, они оба свяжут вас с одной и той же страницей).

&

кнопки записи в консоль

&

Затем вы можете нажать на любой элемент, чтобы увидеть более подробную информацию. Например, вот что происходит, когда я нажимаю на Run echo 'Hello world!'кнопку .

&

просмотр элемента действия

&

Теперь вы знаете, как смотреть на ваши действия, мы можем посмотреть на диапазон возможных событий дальше.

События Действий Github

События действий Github определяют, когда выполняется рабочий процесс. Самое основное событие-это a push, что означает, что рабочий процесс запускается всякий раз, когда что-то перемещается в репозиторий.

on: [push] 

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

&

события, которые усложняют рабочие процессы

&

Из этого списка событий, я подозреваю, большинство людей использовали push и schedule самый большой. Я расскажу об scheduleэтом в следующей статье.

Запуск на определенной ветке

Вы можете попросить Github выполнить действие только в определенных ветвях, если предоставите эту ветвь push. Вот как выглядит эта конфигурация:

on:   push:     branches:       # When someone push to `main` branch       - main       # When someone pushes to `develop` branch       - develop       # When someone pushes to a branch within the `features` folder       - 'features/**' 

Теперь давайте поговорим о работе.

Github Action Jobs

Работа позволяет вам определить, что делать. Каждое задание начинается с “идентификатора задания”. Этот идентификатор в основном является слизняком, который вы используете. В данном случае у нас есть write-to-consoleслужебное удостоверение.

jobs:   write-to-console:     # ... 

Если вы немного больше перфекционист, вы можете добавить nameатрибут к этой работе. Если вы это сделаете, nameто вместо идентификатора задания он появится на странице действий Github.

jobs:   write-to-console:     name: Write to console       # ... 

&

изменение имени идентификатора задания

&

Вы можете перечислить несколько заданий, если хотите.

jobs:   testing:     # ...   deploy:     # ... 

Работает в определенной операционной системе

Каждое задание выполняется в определенной операционной системе. На момент написания статьи вы можете выбрать Windows, Mac или Ubuntu (Linux). Эти серверы называются “бегунами” в терминологии действий Github и могут быть разположеы как на дешевом хостинге так и на вашем личном сервере.

Обновленный список поддерживаемых операционных систем можно найти здесь.

&

бегуны, поддерживаемые github

&

Если мы хотим работать на Ubuntu, мы просто добавляем ubunturuns-on.

# ... jobs:   write-to-console:     runs-on: ubuntu-latest 

Далее нам нужно определить шаги для запуска. Именно здесь происходит основная часть действия.

Определение того, что делать в каждой работе

steps позвольте вам определить, что нужно запускать в каждом задании. Существует три способа определения шагов.

  • С uses
  • С run
  • С name

Вот пример того, как выглядит каждый из них

# ... jobs:   write-to-console:     # ...     steps:       # Method 1 with Uses       - uses: something        # Method 2 with Runs       - runs: some-cli-command        # Method 3 with name       - name: Label for this step         run: some-cli-command 

Мы погрузимся в каждый возможный синтаксис.

Бегущие шаги с uses

uses позвольте вам использовать действия Github, созданные другими. Вы можете увидеть список возможных действий Github на рынке.

Обратите внимание на эти два типа действий:

  • by actions — они созданы командой действий Github
  • Проверенная галочка — они создаются людьми, проверенными командой действий Github.

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

&

marketplace actions by github actions team

&

&

проверенные действия на рынке

&

Самое простое действие-это checkout, которое позволяет вам проверить репозиторий Git в выбранном вами раннере. Вы можете посмотреть страницу marketplace, чтобы узнать, как использовать это действие.

В этом случае на странице оформления заказа говорится, что мы можем использовать это действие actions/checkout@v2.

&

действие страницы оформления заказа

&

Затем вы можете предоставить аргументы действию с withпомощью ключевого слова.

steps:   - uses: actions/checkout@v2     with:       repository: ''       anotherArg: '' 

Обратите внимание на синтаксис здесь:

  • uses имеет -перед собой — это означает шаг.
  • with не имеет -перед собой — все остальные команды под тем же шагом (with находится внутри uses) не должны иметь -префикса.

@v2Часть - это версия, которую мы используем. Вы можете увидеть список доступных версий в правом верхнем углу, нажав на latest-versionраскрывающийся список.

&

выпадающий список последней версии

&

Я рекомендую указывать основной номер версии (первый номер, который идет после v) во всех действиях Github, потому что здесь мы следуем Semver. Это гарантирует, что ваш рабочий процесс не нарушится, когда действие внесет критические изменения.

Кроме checkoutтого , вам, скорее всего, также потребуется настроить среду узла с официальным действием.

steps:   - uses: actions/checkout@v2   - uses: actions/setup-node@v2     with:       node-version: '14' 

uses будет просто зарегистрирован как раздел в журнале действий

&

элементы запускаются с использованием

&

Бегущие шаги с run

run здесь все просто. Он просто выполняет команду. Каждая runкоманда создаст специальный раздел в журнале действий.

steps:   # ...   - run: echo 'Hello World!'   - run: echo "Another section ?" 

&

разделы, созданные с помощью run

&

Бегущие шаги с name

name позволяет создать пользовательскую метку для шагов, которые вы хотите выполнить. Каждый nameиз них должен сопровождаться либо набором команд — как правилоwith, либо run.

steps:   # ...    # Using Name + uses   - name: Setup Node     uses: actions/setup-node@v1    # Using Name + Run   - name: Say Hello     run: echo 'Hello World!' 

&

custome label создан с именем

&

Выполнение нескольких команд в одной runкоманде

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

Для этого вам понадобится |символ в начале runкоманды. Затем вы пишете каждую команду в новой строке.

steps:   # ...   - name: Command Group     run: |       echo 'Hello World!'       echo 'Hello again!' 

&

несколько команд под одной командой запуска

&

Обертывание

Теперь вы знаете самые основы действий Github. Я надеюсь, что эта статья прояснит ситуацию, чтобы вы тратили меньше времени на чтение документов и настройку того, что вы хотите создать.

На следующей неделе мы углубимся в действия Github, чтобы показать вам, как автоматически развернуть сайт с помощью SSH на сервере. Это означает, что мы также начнем работать с секретами Github.



Source: https://zellwk.com/blog/understanding-github-actions/

Комментарии