配置后的效果:git
向分支push后自动触发jenkins jobweb
jenkins job 成功执行后为当前的commit添加一个标签,方便之后进行线上回滚ssh
须要安装的插件:gitlab
Gitlab Hook Pluginui
GitLab Pluginspa
首先在Jenkins建立一个job,在“源码管理”中指定git并设置URL。 在 Branch Specifier 中填写 */dev*
表示只有dev开头的分支有push操做的时候才会触发这个job。设置中的“Repository URL”是gitlab中SSH方式的URL,以下:
插件
设置触发器:这里 Build when a change is pushed to GitLab. GitLab CI Service URL 的值后面须要填写到gitlab的push hook中code
在“Credentials”中添加一个用户的认证方式,这里咱们选择ssh key的方式:ci
首先在源代码管理中为这个仓库起一个名字:建立一个构建后的操做“GIT Publisher”, 在 Target remote name 中填写仓库的名字。TAG的名称能够引用Jenkins的环境变量,如 B$BUILD_NUMBER
rem
在gitlab项目中,将jenkins的公钥添加到当前项目master用户中。若是不须要构建成功后打标签的话能够在deploy key 中添加jenkins的公钥。
jenkins在给git分支打标签的时候会进行push操做,而deploy key只有可读的权限。
在这里添加一个push的webhook,URL为jenkins job触发器配置中 Build when a change is pushed to GitLab. GitLab CI Service URL
对应的值