You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 07:49:34