Jenkins+Gitlab 持续集成
前言
Gitlab上发生push event后就会出发jenkins build
步骤
- 登陆gitlab,在User setting中配置Access Tokens
如图所示,填写完 Name和Expires date之后,选中四个Scopes,就可以点击Create personal access token来生成API token. 在生成之后,要注意把token保存下来,因为之后无法查看了。 - 登陆Jenkins下载Gitlab plugin。下载好之后,点击系统设置,找到Gitlab那个选项,配置Gitlab Connections,注意Gitlab host URL填写Gitlab的http地址,Credentials中创建Gitlab API token,创建好之后,点击Test Connection测试一下,出现Success表示连接成功。
- 最后进入Job,在Source Code Management中选择Git,Repository URL中填写对应repository的http地址,Credentials里选择 Username with password,注意 username是你登陆gitlab的用户名,password是之前生成的access token,填好之后,如果没有报错表明成功。
- Build Triggers中选择Build when a change is pushed to GitLab,点开Advanced,在Secret token的菜单栏中点击 Generate,生成一个token。
- 再返回到Gitlab上,进入到要连接的project中,点击settings->Integration,填写URL和Secret Token。这里的Secret Token就是步骤4中生成的token。
注意这里的URL地址中是project目录而不是job目录!
生成webhook之后,点击旁边的Test->Push events 就可以运行啦!
等等,这个时候运行出现了internal error,经过排查发现,我的jenkins服务器运行在自己的虚拟机上,地址是一个内网地址,但是Gitlab却是一个公网地址,公网地址无法访问内网地址。
于是在虚拟机的网卡上做了一个内网到公网地址的映射,将上图中的URL改为对应的公网地址,然后再运行,出现了http的status是200就表示运行成功啦!这时可以在Jenkins上面看到正在运行的job。