Jenkins是否提供从指定阶段重启流水线的REST API?
Jenkins是否提供从指定阶段重启流水线的REST API?
有的,Jenkins确实提供了对应的REST API来实现从指定阶段重启流水线的功能,不过这个API的使用需要你先获取一些关键信息,我给你拆解下具体操作步骤:
第一步:获取关键信息
你需要先拿到流水线的构建编号,以及目标阶段的节点ID。可以调用这个API来获取阶段详情:GET /job/{job-name}/{build-number}/wfapi/describe返回的JSON数据里,每个阶段都会有一个唯一的
id字段(格式类似stage-xxx),这就是你后续要用到的阶段节点ID。如果是多分支流水线,API路径要调整为:GET /job/{job-name}/job/{branch-name}/{build-number}/wfapi/describe第二步:调用重启API
拿到阶段节点ID后,就可以用POST请求调用重启接口了,核心是在请求参数里指定要重启的阶段:POST /job/{job-name}/{build-number}/rebuild?rebuild=true&from={stage-id}同样,多分支流水线的路径调整为:
POST /job/{job-name}/job/{branch-name}/{build-number}/rebuild?rebuild=true&from={stage-id}要注意哦,调用这个API时必须带上Jenkins的认证信息(比如用户名+API Token),否则会被权限拦截。你可以用curl快速测试,示例命令如下:
# 先获取阶段信息 curl -u 你的用户名:你的API令牌 "http://你的Jenkins地址/job/你的任务名/123/wfapi/describe" # 重启指定阶段 curl -X POST -u 你的用户名:你的API令牌 "http://你的Jenkins地址/job/你的任务名/123/rebuild?rebuild=true&from=stage-456"额外提示
建议使用Jenkins LTS 2.200及以上的版本,更早的版本可能没有这个API的完整支持;另外,如果你的流水线有参数,重启时也可以在请求里带上参数,保持和原构建一致或者修改后传递。
备注:内容来源于stack exchange,提问作者RAJARAJESHWARIE .K
相关产品推荐
相关产品推荐

