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

如何通过命令自动重跑Atlassian Bamboo失败/未完成任务?

在Atlassian Bamboo中通过命令行重跑失败/未完成的构建任务

Bamboo提供了REST API支持触发失败/未完成任务的重跑,以下是两种可直接通过命令行调用的实现方式:

方法一:使用Curl调用REST API

1. 获取目标构建Key

构建Key可从Bamboo UI的构建详情页URL中提取(例如URL为https://your-bamboo-domain.com/browse/PROJ-PLAN-123,则构建Key为PROJ-PLAN-123),也可通过API批量查询失败构建列表。

2. 触发重跑的Curl命令

替换以下参数后直接执行:

  • BAMBOO_BASE_URL:你的Bamboo实例地址
  • BUILD_KEY:目标构建的Key
  • USERNAME/PASSWORD:Bamboo账号信息(推荐用个人API Token替代密码,在Bamboo个人设置中生成)

重跑所有失败/未完成任务

curl -u USERNAME:PASSWORD -X POST "$BAMBOO_BASE_URL/rest/api/latest/result/$BUILD_KEY/rerunFailed?os_authType=basic"

重跑指定任务

若只需重跑特定失败任务,添加taskIds参数(多个任务ID用逗号分隔):

curl -u USERNAME:PASSWORD -X POST "$BAMBOO_BASE_URL/rest/api/latest/result/$BUILD_KEY/rerunFailed?os_authType=basic&taskIds=TASK_ID1,TASK_ID2"

方法二:Python脚本(命令行可执行)

编写轻量脚本实现参数化调用,适合批量或自动化场景:

脚本代码(保存为rerun_bamboo_failed.py)

import requests
import argparse

def rerun_failed_tasks(bamboo_url, build_key, auth, task_ids=None):
    api_url = f"{bamboo_url.rstrip('/')}/rest/api/latest/result/{build_key}/rerunFailed"
    params = {"os_authType": "basic"}
    if task_ids:
        params["taskIds"] = ",".join(task_ids)
    
    response = requests.post(api_url, auth=auth, params=params)
    if response.status_code == 202:
        print(f"✅ 重跑请求已提交,构建Key: {build_key}")
    else:
        print(f"❌ 请求失败,状态码: {response.status_code},详情: {response.text}")

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Bamboo失败/未完成任务重跑工具")
    parser.add_argument("--bamboo-url", required=True, help="Bamboo实例基础URL(如https://your-bamboo.com)")
    parser.add_argument("--build-key", required=True, help="目标构建Key(如PROJ-PLAN-123)")
    parser.add_argument("--username", required=True, help="Bamboo用户名")
    parser.add_argument("--token", required=True, help="Bamboo个人API Token或密码")
    parser.add_argument("--task-ids", nargs="+", help="可选:指定重跑的任务ID列表,多个用空格分隔")
    
    args = parser.parse_args()
    rerun_failed_tasks(args.bamboo_url, args.build_key, (args.username, args.token), args.task_ids)

执行步骤

  1. 安装依赖:
pip install requests
  1. 执行脚本(重跑所有失败任务):
python rerun_bamboo_failed.py --bamboo-url https://your-bamboo-domain.com --build-key PROJ-PLAN-123 --username your-name --token your-api-token
  1. 执行脚本(重跑指定任务):
python rerun_bamboo_failed.py --bamboo-url https://your-bamboo-domain.com --build-key PROJ-PLAN-123 --username your-name --token your-api-token --task-ids TASK001 TASK002

注意事项

  • 确保操作账号拥有对应构建计划的执行权限
  • API Token比密码更安全,建议优先使用
  • 未完成的构建任务同样适用该API,只要存在未执行或失败的任务节点

内容的提问来源于stack exchange,提问作者Strongman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 13:01:44