Jenkins:按标签或参数过滤构建历史

Jenkins: Filter build history by label or parameter

是否可以在 Jenkins 中过滤构建历史,以便仅显示具有特定标签或参数的构建?

假设我有一些参数化的工作。其中一个参数是一个简单的字符串,可以是 "experimental" 或 "official"。是否有任何插件可以让我过滤构建历史以仅显示 "official" 构建?

你可以通过这个插件来完成https://wiki.jenkins-ci.org/display/JENKINS/View+Job+Filters

需要阅读的部分是"Filter by Job Parameterization"

快速搜索构建(运行s)+ 自定义 运行 描述

开箱即用的 Jenkins 支持通过标签(描述)匹配的构建历史的快速搜索。您在标签中输入的任何内容都可以用于搜索:

...所以你可以使用任何可以更改构建标签的插件来添加你想要的信息,然后使用快速搜索。上面的示例使用了带 Groovy postbuild plugin, but you could use anything you feel like; say the description setter plugin or job name setter plugin 的 Pipeline 插件。

然后您可以将参数之类的东西注入到作业名称中。它丑陋、烦人且冗长。并且没有方便的方法来保存罐装过滤器。但它有效。

此解决方法有许多不足之处:

  • 您无法保存过滤器
  • 您无法查看给定过滤器(参数、分支等)的构建趋势
  • 您不能只查看过滤器的管道历史记录

这就是为什么很多人使用:

作业模板 - 创建重复作业

如果您想要固定过滤器和方便的保存视图,目前广泛使用的解决方法似乎是使用 Jenkins Job Builder、作业模板插件等来生成许多类似的作业。使用单独的作业来管理单独的参数套件等。然后使用视图根据需要对作业进行分组。

写一个插件?

我还没有找到任何预先存在的插件来执行此操作。您可以实现自己的项目,提供自定义作业显示 and/or 覆盖 "Build History" 列表,但我还没有找到任何固定的。

构建历史 UI 元素是 BuildHistoryWidget (BuildHistoryWidget.java). It implements ExtensionPoint so you can override it with an @Extension。你不需要给 Jenkins 打补丁。

Google 搜索 "extends HistoryWidget" -"class BuildHistoryWidget" 未能找到任何现有的实现。

延长Pipeline Stage View Plugin

如果您使用流水线(工作流)作业,您不妨考虑扩展或修改流水线Stage View Plugin以满足您的需要。

看起来like it's designed to be somewhat extensible. See pipeline-staged.hbs