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

如何通过Jenkins API存储并跨作业检索构建动态数据?

嘿,这个需求我之前刚好折腾过,给你几个实用的方案,从你提到的archiveArtifacts延伸,还有更贴合你API调用需求的方式:

方案1:基于archiveArtifacts+自定义JSON文件实现

这是你思路的具体落地,操作简单直接,完全符合Jenkins原生生态:

  • 存储数据:在构建流水线里,把动态数据写入一个JSON文件,再用archiveArtifacts归档到当前构建的资源目录。示例Pipeline代码:
// 假设你从测试步骤拿到了覆盖率数值
def coverageValue = 50.24
// 写入JSON文件
writeFile file: 'build-metrics.json', text: """{"code-coverage":"${coverageValue}"}"""
// 归档文件,开启指纹便于追踪
archiveArtifacts artifacts: 'build-metrics.json', fingerprint: true

每个构建都会独立保存这个文件,不会互相覆盖。

  • 检索数据:
    1. 在另一个Pipeline作业中获取:用copyArtifacts拉取目标构建的归档文件,再读取解析:
    // 拉取myjob第123次构建的metrics文件
    copyArtifacts projectName: 'myjob', selector: specific('123'), filter: 'build-metrics.json'
    // 解析JSON并使用数据
    def buildMetrics = readJSON file: 'build-metrics.json'
    echo "目标构建的代码覆盖率:${buildMetrics['code-coverage']}"
    
    1. 通过API直接获取:直接请求构建的归档文件URL即可拿到原始JSON:
      http://localhost:8080/job/myjob/123/artifact/build-metrics.json
      如果想要你描述的/api/json?code-coverage这种简洁格式,可以写个Groovy脚本扩展Jenkins API,自定义端点来返回指定字段。
方案2:用构建描述/自定义参数实现(更贴合API检索)

如果想要更接近你设想的API请求方式,还可以把数据存在构建的元数据里:

  • 存储数据:
    def coverageValue = 50.24
    // 方式A:写入构建描述(支持简单HTML格式化)
    currentBuild.description = """<strong>code-coverage:</strong> ${coverageValue}"""
    // 方式B:设置自定义构建参数(需提前在作业配置中添加字符串参数CODE_COVERAGE)
    currentBuild.buildVariables.put('CODE_COVERAGE', coverageValue.toString())
    
  • 检索数据:通过Jenkins原生API直接获取:
    • 获取构建描述:http://localhost:8080/job/myjob/123/api/json?tree=description
    • 获取构建参数:http://localhost:8080/job/myjob/123/api/json?tree=actions[parameters[name,value]]
      要是想定制成/api/json?code-coverage的格式,也可以通过Jenkins的脚本控制台或者插件自定义API路由,解析请求参数后返回对应数据。
方案3:专用插件实现(进阶持久化)

如果数据需要跨作业共享、长期存储,或者有更复杂的检索需求,可以用专门的插件:

  • Pipeline Utility Steps:就是我们前面用到readJSON/writeFile的插件,还支持更多数据格式的读写和处理;
  • Build Data Storage:可以把构建数据存储到外部数据库,提供更灵活的查询API;
  • Promoted Builds Plugin:如果需要标记特定构建的关键数据,这个插件也能帮你把数据关联到构建的晋升状态中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:17:53