这篇文章我们将会介绍一下如果使用gitlab和jenkins进行结合,通过api动态设定gitlab的webhook,实现每次向gitlab进行push操作的时候,jenkins的job会自动被执行的效果。
试验版本
工具 | 版本 |
---|---|
gitlab | 10.4.2 |
jenkins | 2.73.3 |
Jenkins设定
pipeline
创建一个jenkins的pipeline的job,job名称设定为:devops-pipeline-webhook。另外为了简单演示,具体的jenkinsfile设定如下:
node {
stage('build'){
echo 'build';
}
stage('test'){
echo 'test';
}
stage('deploy'){
echo 'deploy';
}
}
gitlab hook plugin
需要在jenkin上设定gitlab hook plugin,此plugin支持gitlab8及以后的版本。详细信息可以参看如下说明:
https://wiki.jenkins.io/display/JENKINS/Gitlab+Hook+Plugin
job设定
为了建立jenkins的job和gitlab的webhook之间的关联,所创建的jenkins的job只需要做如下设定即可:
选中 Trigger builds remotely (e.g, from scripts)
同时设定gitlab调用的token:此处设定为liumiao
而具体在gitlab设定的jenkins的URL则为: