如何保存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
相关产品推荐
相关产品推荐

