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

如何用Python实现Jenkins中currentbuild.rawbuild.getcauses()获取构建失败原因?

Python实现Jenkins构建失败原因获取(替代Groovy的currentBuild.rawBuild.getCauses())

要在Python中实现Groovy里currentBuild.rawBuild.getCauses()的功能,核心是通过Jenkins的REST API获取构建详情,从中提取失败原因字段。以下是两种实现方式:

方式一:使用python-jenkins库

这是Jenkins官方推荐的Python客户端库,操作更便捷。

  1. 先安装库:
pip install python-jenkins
  1. 示例代码:
import jenkins

# 连接Jenkins服务器
server = jenkins.Jenkins(
    'http://你的Jenkins服务器地址',
    username='你的Jenkins用户名',
    password='你的Jenkins API令牌'  # 可在个人设置中生成
)

# 获取目标Job的最新构建编号
job_name = '你的Job名称'
last_build_num = server.get_job_info(job_name)['lastBuild']['number']

# 获取该构建的完整信息
build_detail = server.get_build_info(job_name, last_build_num)

# 提取构建失败原因(对应Groovy的getCauses())
for action in build_detail.get('actions', []):
    if 'causes' in action:
        print("构建失败原因:")
        for cause in action['causes']:
            print(f"- {cause.get('shortDescription', '无详细描述')}")

方式二:直接调用Jenkins REST API

如果不想依赖第三方库,可通过requests直接调用API:

  1. 先安装requests(若未安装):
pip install requests
  1. 示例代码:
import requests
from requests.auth import HTTPBasicAuth

jenkins_addr = 'http://你的Jenkins服务器地址'
job_name = '你的Job名称'
user = '你的Jenkins用户名'
api_token = '你的Jenkins API令牌'

# 获取最新构建编号
job_info_res = requests.get(
    f"{jenkins_addr}/job/{job_name}/api/json",
    auth=HTTPBasicAuth(user, api_token)
)
last_build_num = job_info_res.json()['lastBuild']['number']

# 获取构建详情
build_info_res = requests.get(
    f"{jenkins_addr}/job/{job_name}/{last_build_num}/api/json",
    auth=HTTPBasicAuth(user, api_token)
)
build_detail = build_info_res.json()

# 提取失败原因
for action in build_detail.get('actions', []):
    if 'causes' in action:
        print("构建失败原因:")
        for cause in action['causes']:
            print(f"- {cause.get('shortDescription')}")

说明

  • Jenkins的构建原因信息存储在构建详情的actions数组中,需要遍历找到包含causes的项,其中shortDescription字段就是Groovy中getCauses()返回的原因描述。
  • 确保你的账号有目标Job的读取权限,API令牌可在Jenkins个人中心的「设置」→「API令牌」中生成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 16:22:51