1. Jenkins API调用

2. Jenkins API

2.1. 认证

这里既支持密码也支持 Token 的方式 curl http://jenkins.example.com/job/jobName/api/json -u admin:admin 在 HTTP 协议头中添加认证信息: curl http://jenkins.example.com/job/jobName/api/json --header "Authorization: Basic echo -n user:passwd | base64"

2.1.1. 跨站请求伪造保护

默认情况下,Jenkins开启了跨站请求伪造,对于Job的一些POST操作需要通过下面的命令来获取相应的Token curl -u admin:admin http://jenkins.example.com/crumbIssuer/api/json curl -u admin:admin http://jenkins.example.com/job/demo/build -X POST --header "Jenkins-Crumb:cd4e9cfd7b15c80543aa3b12ee34ac153502812d42cb800bc37a690785929cf3"

2.2. 单个任务

2.2.1. 获取任务信息

curl -u admin:admin http://jenkins.example.com/job/demo/api/json?pretty=true 

2.2.2. 触发构建

curl -u admin:admin -X POST http://jenkins.example.com/job/demo/build 

2.2.3. 添加描述信息

curl -u admin:admin -X POST http://jenkins.example.com/job/jobName/submitDescription?description=hello 

2.2.4. 禁用任务

 curl -u admin:admin -X POST http://jenkins.example.com/job/jobName/disable 

2.2.5. 启用任务

curl -u admin:admin -X POST http://jenkins.example.com/job/jobName/enable 

2.2.6. 删除任务

curl -u admin:admin -X POST http://jenkins.example.com/job/jobName/doDelete 

2.3. 构建历史

2.3.1. 获取构建历史的控制台日志

curl -u admin:admin http://jenkins.example.com/job/DevOps-Demo-Commit-Stage/51/consoleText  --header "Jenkins-Crumb: e73f381c3299de3b169fbce0153f0fb8"

2.3.2. 获取部分日志,并返回是否还有未输出的日志。协议头中的 X-Text-Size 为日志内容的大小,X-More-Data 的值如果为 true 的话则标示还有未输出的日志。

curl -u admin:admin http://jenkins.example.com/job/jobName/1/logText/progressiveText?start=0 

2.3.3. 删除构建历史

curl -u admin:admin -X POST http://jenkins.example.com/job/jobName/1/doDelete 

2.4. 下面是特定情况的构建:

2.4.1. 最近一次构建的日志

curl -u admin:admin http://jenkins.example.com/job/DevOps-Demo-Commit-Stage/lastBuild/consoleText 

2.4.2. 最近一次失败构建的日志

curl -u admin:admin http://jenkins.example.com/job/jobName/lastFailedBuild/consoleText 

2.4.3. 最近一次未成功的构建日志

curl -u admin:admin http://jenkins.example.com/job/jobName/lastUnsuccessfulBuild/consoleText 

2.4.4. 最近一次完成的构建日志

curl -u admin:admin http://jenkins.example.com/job/jobName/lastCompletedBuild/consoleText 

2.5. 插件管理

2.5.1. 上传插件

curl -u admin:admin http://jenkins.example.com/pluginManager/uploadPlugin -F "name=@target/demo.hpi" 

2.6. 重启

2.6.1. 必须使用 POST 请求

curl -u admin:admin -X POST http://jenkins.example.com/safeRestart 

带参数的构建

curl -k --user <username:password/API token> -X POST ${JENKINS_URL}/job/<particular job>/build?delay=${delay_in_seconds}sec --data-urlencode json='{"parameter": [{"name":"version", "value":"'$version'"},{"name":"environment","value":"'$environment'"}]}'
Format: curl -X POST -u <username:password/API token> "${JENKINS_URL}/job/<particular job>/buildWithParameters?[key1=value1]&[key2=value2]"
Copyright © 赵班长@新运维社区 2019 all right reserved,powered by Gitbook该文件修订时间: 2020-05-10 22:29:46

results matching ""

    No results matching ""