使用 GitLab Event Triggers
目录
概览核心特性支持的事件类型基本事件信息基本变量(适用于所有事件)1. Push 事件Push 事件变量2. Merge Request 事件Merge Request 事件变量3. Comment 事件基础评论事件变量(适用于所有 Comment 事件)3.1 Merge Request 评论变量3.2 Commit 评论变量配置指南前提条件通过 GitLab UI 配置 WebhookPipeline 触发配置示例概览
GitLab Event Triggers 允许你通过 GitLab 的 Webhook 事件自动触发 Tekton pipelines。它支持多种事件类型,包括代码推送、合并请求、评论等,使你能够构建完整的 CI/CD 自动化工作流。
核心特性
- 多事件类型支持:支持多种 GitLab 事件,例如 Push、Merge Request、评论等。
- 标准化触发绑定:提供标准化的 ClusterTriggerBindings,确保跨平台一致性。
- 灵活的参数映射:自动从 GitLab 事件中提取关键信息作为 pipeline 参数。
- 安全的 Webhook 集成:支持 Webhook 安全验证。
支持的事件类型
基本事件信息
所有输出变量都可用于 pipeline 参数映射。你可以使用 $(tt.params.<param name>) 访问参数值。
基本变量(适用于所有事件)
1. Push 事件
当开发人员向 GitLab repository 推送代码时触发。适用于:
- 持续集成构建
- 自动化部署
- 代码质量检查
Push 事件变量
2. Merge Request 事件
当创建、更新或关闭 merge request 时触发。适用于:
- 自动化代码审查
- 预发布环境部署
- 自动化测试
Merge Request 事件变量
TIP
请参考你的 GitLab instance 的 webhook 文档,或 GitLab 官方 merge request 事件文档
3. Comment 事件
支持以下类型的评论:
- Merge Request 评论
- Commit 评论
适用于:
- ChatOps 评论自动化
基础评论事件变量(适用于所有 Comment 事件)
3.1 Merge Request 评论变量
3.2 Commit 评论变量
配置指南
前提条件
- 环境中已创建
EventListener,并且能够在目标 namespace 中处理Trigger。请联系你的平台管理员了解更多信息。 - GitLab 可以访问上述
EventListener。 - 已创建所需的
Pipeline以及必要的运行配置。 - 你拥有修改 GitLab project 的 Webhook 设置的权限。
通过 GitLab UI 配置 Webhook
- 访问你的 GitLab project settings。
- 导航到 Settings > Webhooks。
- 根据
EventListener的部署模式添加一个 Webhook URL,例如,使用https模式: - 按需选择事件类型:
- Push events
- Merge request events
- Comments
- (可选)配置 Secret Token。
- 点击 "Add webhook"。
Pipeline 触发配置示例
如果目标是通过触发器实现持续集成,并满足以下要求:
- 在代码提交后自动触发自动化 CI 功能。
- 当 merge request 打开时自动触发 CI pipeline。
为简化本文档,我们假设 pipeline 已准备就绪,并提供以下参数:
TIP
请替换为你的实际 pipeline 信息。
接下来,我们只需要配置下面两个触发器:
创建 Push Trigger
将以下 YAML 保存为 gitlab-push-trigger.yaml:
在环境中创建该资源:
创建 Merge Request Trigger
将以下 YAML 保存为 gitlab-merge-request-trigger.yaml:
TIP
请根据需要调整 Interceptor 配置。
在环境中创建该资源:
验证触发器
通过提交代码和创建 Merge Request 来进行验证。
CLI:
你可以使用 kubectl -n <namespace> get pipelinerun 获取 pipeline 执行状态。
Console:
访问 Pipelines > PipelineRuns 以查看被触发的 pipelines。