blog
blog copied to clipboard
持续集成:使用 Jenkins REST API 进行远程构建与状态查询
查询 Jenkins 中指定任务 (job) 的最新任务编号
使用以下命令获取指定 Jenkins 任务的最新构建编号:
curl -X GET "http://myJenkins/job/testjob/api/json/lastBuild/buildNumber"
输出示例:
1159
说明:其中
testjob
为任务名。
查询 Jenkins 中指定任务 (job) 的配置信息
要获取指定 Jenkins 任务的配置信息,可以使用以下命令:
curl -X GET "http://myJenkins/job/testjob/api/json"
输出示例:
{
"_class": "hudson.model.FreeStyleProject",
"actions": [
{
"_class": "hudson.model.ParametersDefinitionProperty",
"parameterDefinitions": []
}
],
"description": "",
"displayName": "cms-autoDeployFE_VisualisationTest_tencent",
"fullDisplayName": "cms-autoDeployFE_VisualisationTest_tencent",
"url": "http://myJenkins/job/testjob/",
"buildable": true,
"builds": [
{
"_class": "hudson.model.FreeStyleBuild",
"number": 1158,
"url": "http://myJenkins/job/testjob/1158/"
},
{
"_class": "hudson.model.FreeStyleBuild",
"number": 1157,
"url": "http://myJenkins/job/testjob/1157/"
},
{
"_class": "hudson.model.FreeStyleBuild",
"number": 1156,
"url": "http://myJenkins/job/testjob/1156/"
}
],
"color": "blue",
"healthReport": [
{
"description": "构建稳定性: 最近没有失败的构建。",
"iconClassName": "icon-health-80plus",
"score": 100
}
],
"lastBuild": {
"_class": "hudson.model.FreeStyleBuild",
"number": 1158,
"url": "http://myJenkins/job/testjob/1158/"
},
...
}
查询 Jenkins 中指定任务 (job) 的前次构建 (build) 的任务状态信息
要获取指定任务的上一次构建状态,可以使用以下命令:
curl -X GET "http://myJenkins/job/testjob/lastBuild/api/json"
输出示例:
{
"_class": "hudson.model.FreeStyleBuild",
"actions": [
{
"_class": "hudson.model.ParametersAction",
"parameters": [
{
"_class": "hudson.model.TextParameterValue",
"name": "uniqueId",
"value": "1844283343493722112"
},
{
"_class": "hudson.model.TextParameterValue",
"name": "gitBranch",
"value": "dev"
},
...
]
}
],
"building": false,
"displayName": "#1158",
"duration": 1211167,
"result": "SUCCESS",
"timestamp": 1728546389281,
"url": "http://myJenkins/job/testjob/1158/"
}
查询 Jenkins 中指定任务 (job) 的指定任务编号 (buildNum) 的任务状态信息
获取特定构建编号的任务状态信息的命令如下:
curl -X GET "http://myJenkins/job/testjob/1157/api/json"
输出示例:
{
"_class": "hudson.model.FreeStyleBuild",
...
"displayName": "#1157",
"result": "SUCCESS",
"timestamp": 1728541799259,
"url": "http://myJenkins/job/testjob/1157/"
}
启动 Jenkins 中指定任务 (job) (无构建参数)
可以使用以下命令启动指定的 Jenkins 任务:
curl -X POST "http://myJenkins/job/testjob/build"
启动 Jenkins 中指定任务 (job) 按任务参数执行构建任务
如果需要通过参数启动构建任务,可以使用以下命令:
curl -X POST "http://myJenkins/job/testjob/buildWithParameters?uniqueId=xxx&gitBranch=dev&pageUrl=%2Fprd%2Fheizi&pageId=201&pageVersion=298&env=dev"
安全性: Jenkins 远程触发构建配置触发密钥
打开任务配置并找到构建触发器模块,勾选触发远程构建并配置一个秘钥,这个秘钥相当于密码,密码错误的话不会触发构建.
- 无参数访问:http://IP:端口号/job/任务名称/build?token=秘钥
- 带参数访问: http://IP:端口号/job/任务名称/buildWithParameters?token=秘钥&&参数名=参数值
进行不登录触发构建:
首先先安装一个插件 Build Authorization Token Root Plugin,点击右上角的登录名->设置
输入生成 token 的字符串,并生成一串 token 秘钥,拷贝生成的 token 秘钥,然后回到项目的构建触发器模块,将生成的 token 秘钥填入身份验证令牌中即可.
参考链接
- Jenkins Remote Access API Documentation
- 持续集成:Jenkins API 简单使用
- 持续集成:Jenkins API 使用方法详细介绍
- jenkins 参数化构建以及远程构建