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