jenkins(十八):Jenkins-pipeline(2):开发阶段pipeline:gitlab和Jenkins-pipeline自动集成
Jenkins-pipeline(2):开发阶段pipeline:gitlab和Jenkins-pipeline自动集成
步骤
- Jenkins配置gitlab,系统管理-系统设置
- Gitlab生成API token给Jenkins配置
- Jenkins增加构建触发器,勾选gitlab,同时生成token
- Gitlab创建webhook,填写Jenkins job的URL和token
Jenkins系统管理
安装Gitlab Authentication plugin、GitLab Plugin这两个插件。
gitlab生成token
huHJisZgK2_KGN23BtMe
Jenkins配置token
Jenkins-job设置
gitlab新建分支
jenkins生成token
2e128d8103ebd6320ff45e3af7603b21
gitlab添加jenkins-job的token
测试一下
我的Jenkins配置
node ("master"){ stage('第1步拉代码'){ echo "拉代码" git credentialsId: '03fd8295-c536-4871-9794-1c37394676e0', url: 'git@gitlab.corp.zhaonongzi.com:wangxu/ops.git' } stage('第2步编译'){ echo "编译" sh "source /etc/profile && /usr/local/maven/bin/mvn clean compile" } stage('第3步发送文件'){ echo "打包,有一个mail模块是系统级别的,需要sudo" sh "sudo /usr/local/maven/bin/mvn package" echo "完成后 修改一下权限,否则下一次麻烦" sh "sudo chown -R jenkins: ." sh "find -name '*SNAPSHOT.jar' " } stage('第四步单元测试'){ echo "单元测试" } stage("放到下载服务器上"){ sh "sudo cp ./account-email/target/account-email-1.0.0-SNAPSHOT.jar /home/admin/webserver/html/download && sudo chown -R admin: /home/admin/webserver/html/download" } }
我们下载dev分支,提交一个测试文件
我们刚提交完成,Jenkins就自动构建了一次
我们去workspace查看一下刚才提交的测试文件是否被下载下来
我通过gitlab页面再提交一个
我们再查看一下gitlab-构建
gitlab显示pipeline
都没问题,我们要提交merge request,但我们想把Jenkins上构建成功的状态带过去。gitlab上也能直接跳转Jenkins上查看相关构建过程,让领导merge master的时候更有说服力。
你需要在Jenkins上添加 gitlabCommitStatus
node ("master"){ gitlabCommitStatus { stage('第1步拉代码'){ echo "拉代码" git credentialsId: '03fd8295-c536-4871-9794-1c37394676e0', url: 'git@gitlab.corp.XXX.com:wangxu/ops.git' } stage('第2步编译'){ echo "编译" sh "source /etc/profile && /usr/local/maven/bin/mvn clean compile" } stage('第3步发送文件'){ echo "打包,有一个mail模块是系统级别的,需要sudo" sh "sudo /usr/local/maven/bin/mvn package" echo "完成后 修改一下权限,否则下一次麻烦" sh "sudo chown -R jenkins: ." sh "find -name '*SNAPSHOT.jar' " } stage('第四步单元测试'){ echo "单元测试" } stage("放到下载服务器上"){ sh "sudo cp ./account-email/target/account-email-1.0.0-SNAPSHOT.jar /home/admin/webserver/html/download && sudo chown -R admin: /home/admin/webserver/html/download" } } }
.