Использование GitLab Event Triggers
Содержание
ОбзорОсновные возможностиПоддерживаемые типы событийОсновная информация о событииОсновные переменные (общие для всех событий)1. Событие PushПеременные события Push2. Событие Merge RequestПеременные события Merge Request3. События комментариевОсновные переменные событий комментариев (общие для всех событий комментариев)3.1 Переменные комментариев Merge Request3.2 Переменные комментариев к коммитамРуководство по настройкеПредварительные требованияНастройка Webhook через GitLab UIПример конфигурации Trigger для pipelineОбзор
GitLab Event Triggers позволяет автоматически запускать Tekton pipelines через Webhook-события GitLab. Он поддерживает несколько типов событий, включая push кода, merge request, комментарии и т. д., что позволяет построить полный workflow автоматизации CI/CD.
Основные возможности
- Поддержка нескольких типов событий: поддерживает различные события GitLab, такие как Push, Merge Request, комментарии и т. д.
- Стандартизированная привязка Trigger: предоставляет стандартизированные ClusterTriggerBindings для обеспечения согласованности между платформами.
- Гибкое сопоставление параметров: автоматически извлекает ключевую информацию из событий GitLab для параметров pipeline.
- Безопасная интеграция с Webhook: поддерживает проверку безопасности Webhook.
Поддерживаемые типы событий
Основная информация о событии
Все выходные переменные можно использовать для сопоставления параметров pipeline. Вы можете получать значения параметров с помощью $(tt.params.<param name>).
Основные переменные (общие для всех событий)
1. Событие Push
Срабатывает, когда разработчик отправляет код в репозиторий GitLab. Подходит для:
- Сборок непрерывной интеграции
- Автоматического развертывания
- Проверок качества кода
Переменные события Push
2. Событие Merge Request
Срабатывает при создании, обновлении или закрытии merge request. Подходит для:
- Автоматизированных code review
- Развертывания pre-release окружений
- Автоматизированного тестирования
Переменные события Merge Request
См. документацию webhook вашего экземпляра GitLab или GitLab's official merge request event documentation
3. События комментариев
Поддерживаются следующие типы комментариев:
- Комментарии Merge Request
- Комментарии к коммитам
Подходит для:
- Автоматизации комментариев ChatOps
Основные переменные событий комментариев (общие для всех событий комментариев)
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
- События Merge request
- Комментарии
- (Необязательно) Настройте Secret Token.
- Нажмите "Add webhook".
Пример конфигурации Trigger для pipeline
Если цель — реализовать непрерывную интеграцию через trigger со следующими требованиями:
- Автоматически запускать функциональность CI при отправке кода.
- Автоматически запускать CI pipeline при открытии merge request.
Чтобы упростить эту документацию, предположим, что pipeline уже готов и ему переданы следующие параметры:
Пожалуйста, замените на фактическую информацию о вашем pipeline.
Далее нам нужно настроить только два trigger, указанных ниже:
Создание Push Trigger
Сохраните следующий YAML как gitlab-push-trigger.yaml:
Создайте ресурс в окружении:
Создание Merge Request Trigger
Сохраните следующий YAML как gitlab-merge-request-trigger.yaml:
При необходимости скорректируйте конфигурацию Interceptor.
Создайте ресурс в окружении:
Проверка Trigger
Проверьте работу, отправив код и создав Merge Request.
CLI:
Вы можете получить статус выполнения pipeline с помощью kubectl -n <namespace> get pipelinerun.
Console:
Откройте Pipelines > PipelineRuns, чтобы просмотреть запущенные pipeline.