团队希望gitlab创建tag后,通过Jenkins自动发布此tag代码到指定环境上。
我看到gitlab的webhook有个Tag Push Hook功能:
(为了测试tag发布,所以图中只勾选了tag push events。push events或者marge request这两个是可以正常触发,不在此处细说了。)
现在问题是经过配置,发现打tag后没有触发Jenkins的job。
下面是gitlab的配置:
gitlab的配置很简单,添加上图的webhook,勾选tag push events
下面是Jenkins配置:
安装git parameter 和Gitlab Plugin、Gitlab Hook Plugin这些插件
git parameter用来显示有哪些tag(这个可以不安装,主要是查看tag或者手动发布tag使用):
Gitlab Plugin、Gitlab Hook Plugin用来实现webhook相关功能:
这里有个要求:必须是dev分支的tag,才会触发后续构建,所以选择“Filter branches by regex” 为dev(说明:此处设置为dev,webhook中触发条件修改为push events或marge request,当dev有push时是可以触发的)。
以下是示例:
只勾选push events时,push一次代码到gitlab:
Jenkins是有构建任务的:
只勾选tag push events时,打个tag:
gitlab虽然看到触发记录,但是Jenkins中job没有执行
Jenkins中勾选 Push Events 推送tag就能触发构建了,之前我是没勾选触发失败。