之前部署了 Gitlab 的代码托管平台和 Jenkins 的代码发布平台。通常是开发后的代码先推到 Gitlab 上管理,然
后在 Jenkins 里通过脚本构建代码发布。这种方式每次在发版的时候,需要人工去执行 jenkins 上的构建动
作,有时显得过于繁琐。于是就想到了 Gitlab 的 Webhook 功能,通过 Webhook 的相关设置,可以实现代码
Push 后,自动去触发 jenkins 上的构建动作,这样就不需要人工干预去执行发版操作了。设置如下:
1)Jenkins 上的操作
通常,jenkins 在项目配置时是可以配置远程构建触发器,设置好 jenkins 的回调 url 后就可以让 jenkins 进行
自动构建。这就需要先下载 Gitlab Hook Plugin 插件。登陆 Jenkins,分别点击"系统管理"->"插件管理"->"
可选插件",选择 Gitlab Hook Plugin
然后构建相应的项目工程,比如下面的 test-wx(下面最关键的是第 2 步中查看 url,然后用这个 url 回调地址
去 Gitlab 的 webhook 上添加)
a)先设置代码的 git 下载路径,这里通过 ssh 方式(需要提前将 Jenkins 本机的 key 添加到 Gitlab 上)
b)查看 jenkin 生成回调地址。在任务重构建触发器下获取回调 URL。下面的 URL 那一行只有 Gitlab Hook
Plugin 插件下载成功后才能显示。
c)然后设置代码发布的推送脚本
2)Gitlab 上的操作
登陆 Gitlab 上的 testwx3 项目中,添加 webhook(用上面 Jenkins 中生成的回调 url)
然后点击这个项目的"Settings"
添加成功后,点击此 webhook 后面的 test 进行测试
如果返回 Hook successfully executed.表示配置成功。
这样,下次 push 代码后,就会自动触发 jenkins 上相关的构建工程进行自动发布了!无需人工干预~
------------------------------------------------------------------------------------------------------
如上设置后,比如在 gitlab 的 testwx3 项目代码库中 push 一个 test.txt 文件,然后测试下是否自动发布了
然后去 Jenkins 上查看,如下发现已经自动发布了!
最后去目标机器 192.168.1.19 的/tmp/testwx 目录下发现 test.txt 文件已经发布过来了~