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

如何在Jenkins构建中添加可通过API读取的自定义信息?

在Jenkins构建中添加自定义元信息(可通过API获取)

完全可以在构建阶段通过编程方式为Jenkins构建添加自定义信息,且无需写入工件文件——你提到的actions集合正是最合适的实现路径,直接修改这个集合是可行的。

核心实现方案:添加自定义Action

通过currentBuild.addAction()方法,将包含自定义元信息的Action实例注入构建的actions集合中。这种方式轻量、不污染工件,且自定义信息会随构建的API数据一同返回。

Pipeline代码示例

// 定义一个自定义Action类,仅用于存储元信息(不在Jenkins UI显示)
class CustomBuildMeta implements hudson.model.Action {
    final Map metaInfo

    // 实现Action接口的必填方法,设置为null则不在UI展示
    @Override String getIconFileName() { null }
    @Override String getDisplayName() { null }
    @Override String getUrlName() { null }
}

// 在构建过程中添加自定义元信息
script {
    def customMeta = new CustomBuildMeta(
        metaInfo: [
            foo: "bar",
            magicHash: calculateMagicHash()
        ]
    )
    currentBuild.addAction(customMeta)
}

// 示例:计算自定义哈希的方法
def calculateMagicHash() {
    // 替换为你的实际业务逻辑
    return "a1b2c3d4e5"
}

API获取验证

调用构建的API时,需要将depth参数设置为1或更高(默认depth=0不会展开actions的详细内容),例如:
https://jenkins-server/job/some-job/191/api/json?depth=1

在返回的JSON数据中,actions数组里会包含你添加的CustomBuildMeta实例,其中的metaInfo字段就是你自定义的信息。

其他简便方式(可选)

如果不需要太隐蔽的存储,也可以通过以下方式快速添加:

  • 添加自定义构建参数:使用currentBuild.addOrReplaceAction(new hudson.model.ParametersAction(new hudson.model.StringParameterValue("magicHash", "a1b2c3"))),但该参数会显示在构建的参数列表中。
  • 修改构建描述:currentBuild.description += " | magicHash: a1b2c3",但信息格式不够结构化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 13:50:08