GitHub Actions — это мощный инструмент автоматизации, который позволяет разработчикам определять рабочие процессы и автоматизировать различные задачи в своих репозиториях GitHub. Одним из распространенных вариантов использования является запуск действий специально для запросов на включение или обновленных запросов на включение. В этой статье мы рассмотрим несколько методов достижения этой цели и предоставим примеры кода для каждого метода.
Метод 1. Использование ключевого слова “on” в YAML рабочего процесса
on:
pull_request:
types:
- opened
- synchronize
В приведенном выше примере рабочий процесс будет запущен при открытии нового запроса на включение или при обновлении существующего запроса на включение.
Метод 2. Использование события типа pull_request
on:
pull_request:
types:
- opened
- synchronize
Подобно методу 1, этот подход запускает рабочий процесс при открытии нового запроса на включение или при обновлении существующего запроса на включение.
Метод 3. Использование контекста действий GitHub
on:
push:
branches:
- master
pull_request:
types:
- opened
- synchronize
В этом методе рабочий процесс запускается, когда происходит событие push в «главной» ветке или когда открывается или обновляется новый запрос на включение.
Метод 4. Использование условных операторов в рабочем процессе
on:
push:
branches:
- master
pull_request:
types:
- opened
- synchronize
jobs:
my_job:
if: ${{ github.event_name == 'pull_request' || github.event_name == 'push' }}
steps:
- name: My Action
run: echo "Hello, World!"
В этом примере рабочий процесс запускается событиями push-уведомлений в «главной» ветке или событиями запроса на включение. Однако задание «my_job» будет выполняться только в том случае, если это запрос на включение или событие push.
В этой статье мы рассмотрели несколько методов запуска действий GitHub специально для запросов на включение или обновленных запросов на включение. Используя конфигурацию YAML и контекст GitHub Actions, мы можем легко автоматизировать рабочие процессы для улучшения процессов разработки. Независимо от того, предпочитаете ли вы использовать ключевое слово «on», тип события «pull_request» или условные операторы в рабочем процессе, эти методы обеспечивают гибкость и контроль над тем, когда инициируются действия.