curl调用Jenkins API控制job
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了curl调用Jenkins API控制job相关的知识,希望对你有一定的参考价值。
1.curl
curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。
1.1 获取页面/资源文件
curl http://www.baidu.com
获取url指向的页面;如果URL指向的是文件或者图片等资源文件,资源文件可以直接下载到本地
1.2提交GET请求
curl "wwww.baidu.com?wd=jenkins”
1.3提交POST请求
curl -d "wd=jenkins” www.baidu.com
2.jenkins
2.1运行job
2.1.1无参任务
curl -X POST http://localhost:8080/jenkins/job/plugin%20demo/build --user admin:admin
2.1.2含参任务
不设置参数/使用默认参数
curl -X POST http://localhost:8080/jenkins/job/commandTest/buildWithParameters --user admin:admin
2.1.3设置参数方法1
curl -X POST http://localhost:8080/jenkins/job/commandTest/buildWithParameters -d port=80
2.1.4设置参数方法2
curl -X POST http://localhost:8080/jenkins/job/commandTest/buildWithParameters -d port=80 --data-urlencode json=‘"{\"parameter\": [{\"name\": \"port\", \"value\": \"80\"}]}”‘
2.1.5多参数
http://localhost:8080/jenkins/job/commandTest/buildWithParameters -d param1=value1¶m2=value
2.2 创建job
2.2.1 需创建目录
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”
2.2.2 不需创建目录
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”
2.2.3直接使用控制台,不需创建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
2.3 删除job
curl -X POST http://localhost:8080/jenkins/job/jobfromcmd/doDelete
2.4 查询job的状态
curl --silent ${JENKINS_SERVER}/job/JOB_NAME/lastBuild/api/json
2.5 自动disable Project:
curl --user ${UserName}:${PASSWORD} -o /dev/null --data disable JENKINS_URL/job/JOBNAME/disable
2.6获取build的num
curl --silent ${JENKINS_SERVER}/job/JOB_NAME/lastBuild/buildNumber
2.7获取最近成功的build的num
curl --silent ${JENKINS_SERVER}/job/JOB_NAME/lastStableBuild/buildNumber
更多curl参考:
https://curl.haxx.se/docs/manpage.html
https://curl.haxx.se/docs/manual.html
以上是关于curl调用Jenkins API控制job的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 curl 和 guzzle 的情况下从控制器 Laravel 调用 API,因为它不起作用 [关闭]