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

