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

dud*_*r33 9 continuous-integration jenkins jenkins-plugins

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

假设我有一些参数化的工作.其中一个参数是一个简单的字符串,可以是"实验性"或"官方".是否有任何插件可以让我过滤构建历史记录只显示"官方"版本?

Cra*_*ger 6

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

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

显示构建历史的快速搜索

...因此您可以使用任何可以更改构建标签的插件来添加您想要的信息,然后使用快速搜索。上面的例子使用了流水线插件和Groovy 后构建插件,但你可以使用任何你喜欢的东西;说描述 setter pluginjob name setter plugin

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

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

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

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

工作模板 - 创建重复的工作

如果您想要罐头过滤器和方便的保存视图,目前广泛使用的解决方法似乎是使用 Jenkins 作业生成器、作业模板插件等来生成大量类似的作业。使用单独的作业来管理单独的参数套件等。然后使用视图按您想要的方式对作业进行分组。

写插件?

我还没有找到任何预先存在的插件来做到这一点。您可以实现自己的项目,提供自定义作业显示和/或覆盖“构建历史”列表,但我还没有找到任何罐头。

构建历史 UI 元素是BuildHistoryWidget( BuildHistoryWidget.java)。它实现,ExtensionPoint因此您可以使用@Extension. 您不需要修补 Jenkins。

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

扩展管道阶段视图插件

如果您使用流水线(工作流)作业,您可能希望考虑扩展或修改流水线阶段视图插件以满足您的需求。

看起来它被设计成有点可扩展的。见管道staged.hbs


Sta*_*n E 2

您可以通过此插件来完成此操作https://wiki.jenkins-ci.org/display/JENKINS/View+Job+Filters

需要阅读的部分是“按作业参数化过滤”

  • 这似乎没有按我预期的方式工作。我有一个名为 joba 的工作,它接受参数 param。如果我运行这个 joba 两次,一次使用 param=abc,一次使用 param=def。如果我使用基于 name=param value=abc 的过滤器创建视图,该视图将显示 joba,但它显示带有 param=def 的构建 #2,而我只想要那些具有 param=abc 的构建。 (7认同)
  • 这不满足问题的要求。他们想要过滤作业中的运行。查看作业过滤器插件检查*最近运行的参数*来决定是否在作业列表中显示*整个作业*。它根本不过滤运行。 (3认同)