Jenkins使用每个配置的唯一参数构建矩阵

时间:2016-11-04 14:12:07

标签: java jenkins groovy continuous-integration jenkins-plugins

我安装了Matrix Groovy Execution Strategy Plugin,我遇到了一个问题,对于每个构建,我必须提供一个唯一的参数,如bundle id或hockeyapp id。该插件不允许我从groovy脚本中注入这些参数,因为它将组合与结果值f.e进行比较。

组合:

{axis1:"a", axis2:"z"}

结果

{axis1:"a", axis2:"z", bundleId:"com.foo.bar"}

我不想添加所有的bundleID和hockeyappID作为维度,因为它会产生一个非常庞大的矩阵,参数的任何变化都会产生脚本中所需的大量更改。

如何从矩阵中为每个构建配置添加唯一参数?

1 个答案:

答案 0 :(得分:0)

你可能想要的是EnvInject插件。除此之外,它还允许您在groovy脚本中设置环境变量。

当前轴(轴)可用作此脚本的环境变量

所以添加插件,这会给你一个 Inject environment variables to the build process下的Build Environment

Evaluated Groovy script下使用此脚本的变体

if(AXIS_A == "a")
    return  [COMPUTE_VAR: "123456"]
else
    return  [COMPUTE_VAR: "abcdefg"]

假设您的轴被称为AXIS_A

该方法需要返回一个映射,因此可以添加多个环境变量

来自Jenkins的帮助

  

评估Groovy脚本并注入地图结果。

     

groovy脚本必须返回一个map Java对象。

     

您可以通过Groovy脚本中的变量访问参数和其他环境变量。