當你的領導有變態需求時,首先不要答應他,然後過一分鐘再說我想想辦法吧,當然翔哥我就厲害了,我會說老子不會。
方法一
創建個自由風格的項目或者其他項目
方法二
或者:
方法三:
通過url觸發Jenkins批量構建
首先應該知道你當前用戶下的api token
在服務器上測試一下,然後執行完命令去Jenkins上瞅一眼。
curl -v -X POST --data- urlencode“MyDescription = This is my desc”“http:// [myServer] / job / [jobName] / buildWithParameters”
#
#
#
#
我的Jenkinsfile:
#!/usr/bin/env1 groovy
import groovy.util.XmlSlurper
import groovy.lang.GroovyObjectSupport
import groovy.util.slurpersupport.GPathResult
import groovy.util.slurpersupport.NodeChild
import groovy.util.Eval
stage ('xxxx jenkins'){
node{
env1 = JOB_NAME.split("-")[0] #取項目名DEV-cdp_brand,DEV做變量
sh "curl -X POST http://lxxx:[email protected]/job/'${env1}'-sk_platform_develop/buildWithParameters"
sh "sleep 15"
sh "curl -X POST http://lxxx:[email protected]/job/'${env1}'-sk_platform_system/buildWithParameters"
sh "sleep 15"
sh "curl -X POST http://lxxx:[email protected]/job/'${env1}'-sk_platform_center/buildWithParameters"
sh "sleep 15"
sh "curl -X POST http://lxxx:[email protected]/job/'${env1}'-sk_platform_design/buildWithParameters"
sh "sleep 15"
sh "curl -X POST http://lxxx:[email protected]/job/'${env1}'-sk_service_data_center/buildWithParameters"
sh "sleep 15"
sh "curl -X POST http://lxxx:[email protected]/job/'${env1}'-sk_service_data_convert/buildWithParameters"
sh "sleep 15"
sh "curl -X POST http://lxxx:[email protected]/job/'${env1}'-sk_service_design/buildWithParameters"
}
}
我使用的是管道。。,建議你們直接寫shell腳本就行了
當你的Jenkins需要job通過curl構建時添加其他參數比如:
#
#
比如說把master分支換成其他的
curl -X POST http://mxxy:[email protected]/job/DEV-cdp_brand_home_manage_app/buildWithParameters -d branch='alpha1.0.X'
#
#
1無參任務
curl -X POST http://localhost:8080/jenkins/job/plugin%20demo/build --user admin:admin
2含參任務
不設置參數/使用默認參數
curl -X POST http://localhost:8080/jenkins/job/commandTest/buildWithParameters --user admin:admin
3設置參數方法1
curl -X POST http://localhost:8080/jenkins/job/commandTest/buildWithParameters -d port=80
4設置參數方法2
curl -X POST http://localhost:8080/jenkins/job/commandTest/buildWithParameters -d port=80 --data-urlencode json='"{\"parameter\": [{\"name\": \"port\", \"value\": \"80\"}]}”'
5多參數
http://localhost:8080/jenkins/job/commandTest/buildWithParameters -d param1=value1¶m2=value
![](https://s1.51cto.com/images/blog/201901/18/5cb1932d6e2fa7f86ce46e4f2cab9199.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
6 需創建目錄
1).創建job目錄
~/.jenkins/jobs/jobfromcmd
2).創建config.xml文件(可從其他工程中複製)
3).運行命令
curl -X POST http://localhost:8080/jenkins/createItem?name=jobfromcmd --user admin:admin --data-binary "@config.xml" -H "Content-Type: text/xml”
7.不需創建目錄
1).創建config.xml文件(可從其他工程中複製)
2).運行命令(在config.xml同一目錄下)
curl -X POST http://localhost:8080/jenkins/createItem?name=jobfromcmd --user admin:admin --data-binary "@config.xml" -H "Content-Type: text/xml”
8.直接使用控制檯,不需創建xml文件(將xml內容寫入控制檯中運行)
echo '<?xml version="1.0" encoding="UTF-8"?><project>…</project>' | curl -X POST -H 'Content-type:text/xml' -d @- http://localhost:8080/jenkins/createItem?name=jobfromcmd
9. 刪除job
curl -X POST http://localhost:8080/jenkins/job/jobfromcmd/doDelete
10. 查詢job的狀態
curl --silent ${JENKINS_SERVER}/job/JOB_NAME/lastBuild/api/json
11. 自動disable Project:
curl --user ${UserName}:${PASSWORD} -o /dev/null --data disable JENKINS_URL/job/JOBNAME/disable
12.獲取build的num
curl --silent ${JENKINS_SERVER}/job/JOB_NAME/lastBuild/buildNumber
13.獲取最近成功的build的num
curl --silent ${JENKINS_SERVER}/job/JOB_NAME/lastStableBuild/buildNumber
#
#
後來我的領導又說聯合發版沒辦法更改代碼branch,這時候一定要告訴你領導 “滾”
如下圖:
#
#
#
#
#
#
#
#
#
樓鎮圖(我朋友發給我的問我是誰,看着特眼熟就說說不出來名)