Триггеры и события рабочих процессов
Изучите различные события, способные запускать рабочие процессы GitHub Actions, например отправку изменений, запросы на слияние и запланированные события.
«Триггеры и события рабочих процессов» — бесплатный урок CI/CD with GitHub Actions & DevOps Pipelines на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения CI/CD with GitHub Actions & DevOps Pipelines, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс CI/CD with GitHub Actions & DevOps Pipelines содержит 4 уроков всего.
Что запускает рабочий процесс?
Рабочие процессы в GitHub Actions не запускаются сами по себе. Им нужен сигнал для начала! Этот сигнал называется триггером.
Триггеры — это определённые события, которые сообщают GitHub Actions: «Эй, что-то произошло! Пора запустить этот рабочий процесс». Понимание триггеров — ключ к эффективной автоматизации процесса разработки.
Ключевое слово «on»
В файле рабочего процесса (файле .yml в каталоге .github/workflows) триггеры определяются с помощью ключевого слова on.
Этот раздел указывает GitHub Actions, когда выполнять рабочий процесс. Можно указать одно или несколько событий.
name: My First Triggered Workflow
on:
push: # This workflow will run on every push event
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run a simple command
run: echo "Workflow triggered!"
Реакция на отправку кода
Событие push — один из самых распространённых триггеров. Оно срабатывает при каждой отправке кода в репозиторий, будь то новый коммит или объединение изменений.
По умолчанию триггер push запускается для всех веток.
on: push
jobs:
greeting:
runs-on: ubuntu-latest
steps:
- name: Say Hello
run: echo "Code was pushed!"
Целевая отправка изменений
Вы можете настроить триггер push так, чтобы он запускался только для определённых веток или при изменениях в конкретных путях к файлам. Это помогает оптимизировать рабочие процессы.
branches: запускать только при отправке изменений в ветки с определёнными названиями.paths: запускать только при изменении файлов в указанных каталогах.
on:
push:
branches:
- main
- 'feature/*' # Glob pattern for feature branches
paths:
- 'src/**' # Only if changes in src/ directory
jobs:
build:
runs-on: ubuntu-latest
steps:
- run: echo "Push to relevant branch/path detected!"
Автоматизация проверок запросов на слияние
Событие pull_request срабатывает, когда запрос на слияние создаётся, синхронизируется (в его ветку PR отправляются новые коммиты) или открывается повторно.
Оно идеально подходит для автоматического запуска таких проверок, как тесты, статический анализ или проверка кода, до объединения изменений с основной кодовой базой.
on: pull_request
jobs:
pr_check:
runs-on: ubuntu-latest
steps:
- name: PR opened/updated
run: echo "A pull request was opened or updated!"
Отдельные действия PR
Вы можете дополнительно настроить триггер pull_request, указав types. Это позволяет рабочему процессу реагировать только на определённые действия, связанные с запросом на слияние.
opened: создаётся новый запрос на слияние.synchronize: в ветку PR отправляются новые коммиты.reopened: закрытый запрос на слияние открывается повторно.
on:
pull_request:
types: [opened, synchronize, reopened] # Run only on these PR actions
jobs:
pr_review:
runs-on: ubuntu-latest
steps:
- run: echo "PR action: ${{ github.event.action }}"
Триггеры по времени
Событие schedule позволяет запускать рабочие процессы в определённое время с помощью синтаксиса cron. Это отлично подходит для ежедневных отчётов, задач очистки или периодических проверок.
Синтаксис cron использует пять звёздочек, обозначающих: minute hour day-of-month month day-of-week.
on:
schedule:
- cron: '0 0 * * *' # Run daily at midnight UTC
- cron: '0 12 * * 1-5' # Run at 12 PM UTC, Mon-Fri
jobs:
scheduled_task:
runs-on: ubuntu-latest
steps:
- run: echo "Scheduled workflow running!"
Запуск рабочих процессов вручную
Иногда рабочий процесс требуется запустить вручную, например для развёртывания или выполнения конкретной задачи обслуживания. Событие workflow_dispatch позволяет это сделать.
Если этот триггер указан, в интерфейсе GitHub для рабочего процесса появляется кнопка «Run workflow», с помощью которой его можно запустить по требованию.
on: workflow_dispatch
jobs:
manual_task:
runs-on: ubuntu-latest
steps:
- run: echo "This workflow was triggered manually!"
За пределами основ
Хотя push, pull_request, schedule и workflow_dispatch являются наиболее распространёнными, GitHub Actions поддерживает множество других триггеров событий.
workflow_call: для создания повторно используемых рабочих процессов.repository_dispatch: для запуска рабочих процессов из внешних систем через вызов API.- И многие другие для определённых событий GitHub (например,
issues,release,fork).
Задание на триггеры
Вам нужно настроить рабочий процесс, который будет автоматически создавать еженедельный отчёт каждую пятницу в 17:00 по времени UTC независимо от изменений кода. Какое событие-триггер лучше всего подходит для этой задачи?
Повторение триггеров
Отличная работа! Вы изучили триггеры GitHub Actions и узнали, как рабочие процессы запускаются различными событиями:
push: для изменений, отправленных в репозиторий.pull_request: для действий, связанных с запросами на включение изменений.schedule: для периодических задач, выполняемых по времени с использованием cron.workflow_dispatch: для ручного запуска из интерфейса или через API.
Выбор подходящего триггера — первый шаг к созданию эффективных и производительных конвейеров CI/CD!
Часто задаваемые вопросы
Урок «Триггеры и события рабочих процессов» бесплатный?
Да — полный текст урока «Триггеры и события рабочих процессов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс CI/CD with GitHub Actions & DevOps Pipelines, подпишись на CoddyKit PRO. Курс CI/CD with GitHub Actions & DevOps Pipelines содержит 4 уроков всего.
Чему я научусь в уроке «Триггеры и события рабочих процессов»?
Изучите различные события, способные запускать рабочие процессы GitHub Actions, например отправку изменений, запросы на слияние и запланированные события. Ты практикуешь CI/CD with GitHub Actions & DevOps Pipelines с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать CI/CD with GitHub Actions & DevOps Pipelines?
Предыдущий опыт не требуется. CI/CD with GitHub Actions & DevOps Pipelines на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Триггеры и события рабочих процессов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке CI/CD with GitHub Actions & DevOps Pipelines?
Да. Каждый урок CI/CD with GitHub Actions & DevOps Pipelines включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Триггеры и события рабочих процессов
- Запуск тестов с GitHub Actions
- Линтинг и проверки качества кода
- Кэширование зависимостей для ускорения сборок