Использование GitLab Event Triggers
Содержание
ОбзорОсновные возможностиПоддерживаемые типы событийБазовая информация о событияхБазовые переменные (общие для всех событий)1. Push EventПеременные Push Event2. Merge Request EventПеременные Merge Request Event3. Comment EventsБазовые переменные Comment Event (общие для всех Comment Event)3.1 Переменные комментариев Merge Request3.2 Переменные комментариев к коммитамРуководство по конфигурацииПредварительные требованияНастройка Webhook через GitLab UIПример конфигурации pipeline triggerОбзор
GitLab Event Triggers позволяют автоматически запускать Tekton pipelines через Webhook-события GitLab. Поддерживаются несколько типов событий, включая push кода, Merge Request, комментарии и т. д., что позволяет построить полный CI/CD workflow автоматизации.
Основные возможности
- Поддержка нескольких типов событий: Поддерживает различные события GitLab, такие как Push, Merge Request, комментарии и т. д.
- Стандартизированная привязка триггеров: Предоставляет стандартизированные ClusterTriggerBindings для обеспечения согласованности между платформами.
- Гибкое сопоставление параметров: Автоматически извлекает ключевую информацию из событий GitLab для параметров pipeline.
- Безопасная интеграция Webhook: Поддерживает проверку безопасности Webhook.
Поддерживаемые типы событий
Базовая информация о событиях
Все выходные переменные можно использовать для сопоставления параметров pipeline. Значения параметров можно получать с помощью $(tt.params.<param name>).
Базовые переменные (общие для всех событий)
1. Push Event
Срабатывает, когда разработчик отправляет код в repository GitLab. Подходит для:
- Сборок непрерывной интеграции
- Автоматизированного развертывания
- Проверок качества кода
Переменные Push Event
2. Merge Request Event
Срабатывает при создании, обновлении или закрытии Merge Request. Подходит для:
- Автоматизированных code review
- Развертывания в pre-release среде
- Автоматизированного тестирования
Переменные Merge Request Event
Обратитесь к документации webhook вашего экземпляра GitLab или к официальной документации GitLab по событиям Merge Request
3. Comment Events
Поддерживаются следующие типы комментариев:
- Комментарии Merge Request
- Комментарии к коммитам
Подходит для:
- Автоматизации комментариев ChatOps
Базовые переменные Comment Event (общие для всех Comment Event)
3.1 Переменные комментариев Merge Request
3.2 Переменные комментариев к коммитам
Руководство по конфигурации
Предварительные требования
- В окружении создан
EventListener, и он способен обрабатыватьTriggerв целевом namespace. Для получения дополнительной информации обратитесь к администратору платформы. - GitLab может получить доступ к указанному выше
EventListener. - Необходимый
Pipeline, а также требуемые конфигурации запуска уже созданы. - У вас есть права на изменение настроек Webhook проекта GitLab.
Настройка Webhook через GitLab UI
- Перейдите в настройки вашего проекта GitLab.
- Откройте Settings > Webhooks.
- Добавьте Webhook URL в зависимости от режима развертывания
EventListener, например, в режимеhttps: - Выберите нужные типы событий:
- Push events
- Merge request events
- Comments
- (Optional) Настройте Secret Token.
- Нажмите "Add webhook".
Пример конфигурации pipeline trigger
Если цель — реализовать непрерывную интеграцию через trigger со следующими требованиями:
- Автоматически запускать функции CI при отправке кода.
- Автоматически запускать CI pipeline при открытии Merge Request.
Чтобы упростить эту документацию, предположим, что pipeline уже готов и в него передаются следующие параметры:
Замените значения на информацию из вашего реального pipeline.
Далее нам нужно настроить только два триггера ниже:
Создание Push Trigger
Сохраните следующий YAML как gitlab-push-trigger.yaml:
Создайте ресурс в окружении:
Создание Merge Request Trigger
Сохраните следующий YAML как gitlab-merge-request-trigger.yaml:
При необходимости настройте конфигурацию Interceptor.
Создайте ресурс в окружении:
Проверка триггеров
Проверьте работу, отправив код и создав Merge Request.
CLI:
Статус выполнения pipeline можно получить с помощью kubectl -n <namespace> get pipelinerun.
Console:
Перейдите в Pipelines > PipelineRuns, чтобы просмотреть запущенные pipeline.