今天梳理记录一下push请求触发Jenkins中构建的配置方法。
1. 创建任务
-
流水线 或 自由任务 均可,以流水线配置为例;
添加触发器:
pipeline{ //省略其他配置 triggers { gitlab( triggerOnPush: true, triggerOnMergeRequest: false, branchFilterType: "NameBasedFilter", includeBranchesSpec: "develop", secretToken: "thisisfrontendpublish" ) } //省略其他配置 }
一些参数说明:
参数名 |
参数说明 |
默认值 |
triggerOnPush |
是否 Push 事件时触发 |
true |
triggerOnMergeRequest |
是否 Merge Request 事件时触发,MR 包含创建、变更、接受等很多情况 |
true |
triggerOpenMergeRequestOnPush |
Merge Request 中源分支或目的分支被Push时触发 |
false |
acceptMergeRequestOnSuccess |
构建成功时向GitLab发起接收 Merge Request 事件 |
false |
triggerOnApprovedMergeRequest |
MR 被批准时触发 |
true |
branchFilterType |
分支匹配类型:基于名称 NameBasedFilter,基于正则表达式 RegexBasedFilter,两者混用 ALL |
ALL |
includeBranchesSpec |
branchFilterType 为 NameBasedFilter生效,监听哪些分支的事件,多分支使用英文逗号分开 |
"" |
secretToken |
类似一个密码,用于外部调用此工程时校验,在Jenkins里生成 |
"" |
2. Jenkins里的配置
secretToken的生成:
构建触发器 中 -> 高级,点击生成:
3. gitlab上的设置,新版的在webhook选项中:
生成结果如下:
点击 Test -> Push event,来测试配置的连通性,
如果返回200,表示配置正确,
返回403,一般是secretToken不正确,认证问题。