我有一个带有两个轴的 Jenkins 多配置项目:
sbBrowser
具有值:firefox ie chrome
envConfig
具有值:pp1 pp2 pp3 staging systemtest
我必须创建组合过滤器才能仅sbBrowser = firefox
在所有envConfig
.
如何构建表达式?
就像是:
sbBrowser=="firefox" && envConfig=="pp1" "pp2" "pp3" "staging" "systemtest"
好的,下面的表达式是一个魅力:
(sbBrowser=="firefox") && (envConfig=="pp1") ||(sbBrowser=="firefox") && (envConfig=="pp2")||(sbBrowser=="firefox") && (envConfig=="pp3")||(sbBrowser=="firefox") && (envConfig=="staging")||(sbBrowser=="firefox") && (envConfig=="systemtest")
如果您希望它仅在 envConfig 的所有值上为 firefox 运行,那么为什么要指定 envConfig 集的成员呢?只需这样做(sbBrowser=="firefox")
,它将仅在 Firefox 上运行,适用于 envConfig 的所有成员。
你也可以这样做——
(sbBrowser=="firefox") && ["pp1","pp2","pp3","staging","systemtest"].contains(envConfig)
如果在其他构建参数中定义了 groovy 表达式,例如,当使用定义默认组合的矩阵组合参数时- 那么参数名称应该在里面evaluate()
:
...
您还必须批准使用
方法 groovy.lang.Script 评估 java.lang.String
在Manage Jenkins --> In-process Script Approval下