侧边栏壁纸
博主头像
★街角晚灯★博主等级

博观而约取 厚积而薄发

  • 累计撰写 450 篇文章
  • 累计创建 183 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Jenkins常用接口API

WinJay
2024-03-11 / 0 评论 / 0 点赞 / 10 阅读 / 4808 字 / 正在检测是否收录...
温馨提示:
文章发布较早,内容可能过时,阅读注意甄别。。。。

Jenkins常用接口API

Mastering Jenkins Automation: Create, Update, Delete, and Trigger Jobs with API

1 站点API

- 站点支持的API: http://<Jenkins-Server-Address>/api
- 查询到站点中所有的job信息(JSON格式): http://<Jenkins-Server-Address>/api/json?pretty=true
- 查询到站点中所有的job信息(XML格式): http://<Jenkins-Server-Address>/api/xml
- 通过tree进行过滤: http://<Jenkins-Server-Address>/api/json?pretty=true&tree=jobs[name[*]]
- 重启站点: http://<Jenkins-Server-Address>/restart
- 安全重启站点: http://<Jenkins-Server-Address>/safeRestart

2 获取Job相关信息

- 当前的api说明: http://<Jenkins-Server-Address>/job/<Job-Name>/api/
- JSON格式: http://<Jenkins-Server-Address>/job/<Job-Name>/api/json?pretty=true
- XML格式: http://<Jenkins-Server-Address>/job/<Job-Name>/api/xml

3 获取Job的指定信息(JSON格式)

- 获取Job的builds节点信息: http://<Jenkins-Server-Address>/job/<Job-Name>/api/json?pretty=true&tree=builds[*]
- 获取Job的builds节点下displayName节点信息: http://<Jenkins-Server-Address>/job/<Job-Name>/api/json?pretty=true&tree=builds[displayName]
- 获取Job的builds节点下指定displayName节点信息: http://<Jenkins-Server-Address>/job/<Job-Name>/api/json?pretty=true&tree=builds[displayName]{x,y}
- 获取两个相关的节点信息,例如: http://<Jenkins-Server-Address>/job/<Job-Name>/api/json?pretty=true&tree=builds[displayName]{3,5},url[*]

4 获取指定Build相关信息

- JSON格式: http://<Jenkins-Server-Address>/job/<Job-Name>/<Build-Number>/api/json?pretty=true
- XML格式: http://<Jenkins-Server-Address>/job/<Job-Name>/<Build-Number>/api/xml
- 获取指定信息: http://<Jenkins-Server-Address>/job/<Job-Name>/<Build-Number>/api/json?pretty=true&&tree=<filter>

5 通过curl工具

- 获取最近的buildNumber: `curl --silent http://<Jenkins-Server-Address>/job/<Job-Name>/lastBuild/buildNumber`
- 获取最近稳定的buildNumber:`curl --silent http://<Jenkins-Server-Address>/job/<Job-Name>/lastStableBuild/buildNumber`
- 获取最近成功的buildNumber:`curl --silent http://<Jenkins-Server-Address>/job/<Job-Name>/lastSuccessfulBuild/buildNumber`
- 获取最近失败的buildNumber:`curl --silent http://<Jenkins-Server-Address>/job/<Job-Name>/lastFailedBuild/buildNumber`

6 对Job的一些操作

- 获取(get方法)和更新(post方法)Job的description信息: http://<Jenkins-Server-Address>/job/<Job-Name>/description
- 获取(get方法)和更新(post方法)Job的详细配置信息: http://<Jenkins-Server-Address>/job/<Job-Name>/config.xml
- 不带参数直接执行(post方法): http://<Jenkins-Server-Address>/job/<Job-Name>/build
- 带参数执行(post方法),例如: http://<Jenkins-Server-Address>/job/<Job-Name>/buildWithParameters?token=testuser\&AAA='test123'\&BBB='test789'
- 禁用(post方法)指定的job: http://<Jenkins-Server-Address>/job/<Job-Name>/disable
- 启用(post方法)指定的job: http://<Jenkins-Server-Address>/job/<Job-Name>/enable
- 删除(post方法)指定的job: http://<Jenkins-Server-Address>/job/<Job-Name>/doDelete

实例

获取项目ceshi的最后一次构建信息
curl --silent http://jenkins.wmmzz.com/job/ceshi/lastBuild/api/json?pretty=true  --user admin:"passwd"

获取jenkins所有job信息
curl --silent http://jenkins.wmmzz.com/api/json?pretty=true  --user admin:"passwd"

获取项目ceshi的配置信息
curl --silent http://jenkins.wmmzz.com/job/ceshi/config.xml    --user admin:"passwd"

创建一个新项目,先下载案例ceshi的config.xml,再用这个配置模板创建项目test
curl --silent http://jenkins.wmmzz.com/job/ceshi/config.xml    --user admin:"passwd"    -o   config.xml

curl  -X  POST    http://jenkins.wmmzz.com/createItem?name=test    --user admin:"passwd"   --data-binary   "@config.xml"  -H "Content-Type: text/xml"

更新ceshi项目的配置文件,更改config.xml再传上去
curl  -X  POST    http://jenkins.wmmzz.com/job/ceshi/config.xml    --user admin:"passwd"   --data-binary   "@config.xml"  -H "Content-Type: text/xml"

根据实际测试,当jenkins项目配置中启用'构建'里的'执行shell'时,下载的config.xml文件无法使用,测试时报错
此时,推荐使用复制的方法创建项目,使用创建好的muban项目,复制出新项目ceshi
curl  -X  POST   http://jenkins.wmmzz.com/createItem?name=ceshi\&mode=copy\&from=muban    --user admin:"passwd"     -H "Content-Type: application/xml"

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区