Git - 向 GitLab 提交代码之后自动触发 Jenkins 构建

GitLab服务器和Jenkins服务器可以通过Web Hook的方式进行通信。

(1)在Jenkins服务器中,安装GitLab Plugin和GitLab Hook Plugin

Git - 向 GitLab 提交代码之后自动触发 Jenkins 构建

(2)打开一个任务配置,构建触发器中选择"Build when a change is pushed to GitLab."记下GitLab webhook URL,使用时候将localhost替换成服务器的ip地址。

Git - 向 GitLab 提交代码之后自动触发 Jenkins 构建

(3)在GitLab服务器中,在目标project的Settings -> Integrations中添加Web Hook。将Jenkins产生的GitLab webhook URL填入URL,其他选项使用默认设置,点击"Add webhook",webhook添加成功:

Git - 向 GitLab 提交代码之后自动触发 Jenkins 构建

(4) 点击下方Test,并选择"Push events",系统报错,有权限问题:Jenkins匿名用户无Build权限。

Git - 向 GitLab 提交代码之后自动触发 Jenkins 构建

(5)在Jenkins中修改安全策略(谨慎操作,确保操作用户具有所有权限):

系统管理 -> 全局安全配置 -> 在安全矩阵中给予匿名用户Build权限

Git - 向 GitLab 提交代码之后自动触发 Jenkins 构建

(6)在GitLab中再次测试:

Git - 向 GitLab 提交代码之后自动触发 Jenkins 构建

(7) 在配置安全策略过程中出现了服务器访问报错,用户无法登录的情况,具体可参考:

主要思路是:通过修改~/.jenkins/config中authorizationStrategyclass的值(经重启Jenkins服务器生效),逐步改变Jenkins的安全策略,最终恢复正常状态。