【问题标题】:Jenkins build matrix with unique parameter per configurationJenkins 构建矩阵,每个配置具有唯一参数
【发布时间】:2016-11-04 14:12:07
【问题描述】:
我安装了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 添加为维度的想法,因为它会产生一个非常大的矩阵,并且参数的任何更改都会产生脚本所需的大量更改。
如何为矩阵中的每个构建配置添加唯一参数?
【问题讨论】:
标签:
java
jenkins
groovy
continuous-integration
jenkins-plugins
【解决方案1】:
您可能想要的是EnvInject 插件。除此之外,这还允许您在 groovy 脚本中设置环境变量。
当前坐标轴(axises)已作为环境变量可供此脚本使用
所以添加插件,这会给你一个
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 脚本必须返回一个映射 Java 对象。
您可以通过 Groovy 脚本中的变量访问参数和其他环境变量。