首页 > 解决方案 > Jenkins 组合过滤器与 Groovy 脚本

问题描述

我有一个 Jenkins 多配置项目,其中包含两个要组合的变量:

  1. 版本(来自构建矩阵轴)

    1.2
    1.3
    
  2. 平台(构建参数)

    ubuntu
    windows
    

支持某些组合,其他不支持。除了上面还有很多,但在这里尽量保持简单。

我尝试过组合过滤器,例如:

    (platform == "windows" && version == "1.1") || (platform == "windows" && version == "1.2") ...

但是对于许多组合,这些会变得非常冗长和复杂。我希望能够从文件中读取每个版本的允许平台列表。然后,过滤器将是基于文件内容的简单地图样式查找。就像“返回版本[版本].contains(platform)”。

我考虑过使用单行组合过滤器将文件作为 Groovy 脚本读取并执行。想不通那个单行。

这个答案建议将“评估(参数名称)”作为过滤器。将更复杂的 Groovy 脚本放入该“paramName”并使用它来读取映射文件等。我不知道如何在哪里插入诸如参数来评估。

Groovy 执行策略插件似乎可以工作。但我也不太确定如何用这个编写脚本。如何将我的变量和这个插件中的映射文件结合起来,以及返回什么?

最终,我希望能够使用默认的组合过滤器支持,因此我也可以在Matrix Combinations Plugin中重新使用它作为快捷方式选择(它支持组合过滤器)。

所以更喜欢普通的组合过滤器,但如果必须可以使用其他方法。目标是过滤允许的组合。

有任何想法吗?

标签: jenkinsgroovy

解决方案


推荐阅读