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

如何保存Jenkins pipeline运行结果并通过REST API或Python包获取

Jenkins Pipeline运行结果保存及API访问方案

这个需求完全可以实现,具体操作步骤如下:

1. 修改Pipeline代码存储result变量

无需额外安装插件,直接将结果写入构建的description元数据字段即可,修改后的Pipeline代码如下:

pipeline {
    agent any
    stages {
        stage("calculate 1+1") {
            script{
                def result = 0
                result = 1+1
                // 单个变量直接写入描述字段
                currentBuild.description = "calc_result:${result}"
                // 若需存储多个变量,可写入JSON格式
                // def resMap = [calc_result: result, task_status: "success"]
                // currentBuild.description = new groovy.json.JsonBuilder(resMap).toString()
            }
        }
    }
}

2. 通过Python Jenkins包访问结果

你提到的Jenkins.get_build_info方法完全支持读取该字段,示例代码如下:
首先安装依赖包:
pip install python-jenkins

调用示例:

import jenkins
import re
# 若存储的是JSON格式需导入json包
# import json

# 初始化Jenkins连接
server = jenkins.Jenkins('http://<你的Jenkins服务地址>', username='<你的账号>', password='<你的API Token/密码>')
job_name = "<你的Pipeline任务名称>"
# 获取最新构建号,也可以直接指定要查询的构建号
last_build_num = server.get_job_info(job_name)['lastBuild']['number']

# 读取构建信息
build_info = server.get_build_info(job_name, last_build_num)
build_desc = build_info.get('description', '')

# 解析单个变量场景
match_obj = re.search(r'calc_result:(\d+)', build_desc)
if match_obj:
    calc_result = match_obj.group(1)
    print(f"计算结果为: {calc_result}")

# 解析JSON格式多变量场景
# res_dict = json.loads(build_desc)
# print(f"计算结果为: {res_dict['calc_result']}")

其他可选方案

如果需要存储大量自定义结果、日志等内容,可以在Pipeline中使用archiveArtifacts指令将结果文件归档为构建产物,后续通过API下载对应构建的产物文件解析即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:45:06