Jenkins矩阵项目组合过滤器 - 如何配置groovy表达式?

时间:2013-04-26 08:50:17

标签: groovy jenkins

我有一个带两个轴的Jenkins多配置项目:

  1. sbBrowser,其值为:

    firefox
    ie
    chrome
    
  2. envConfig,其值为:

    pp1
    pp2
    pp3
    staging
    systemtest
    
  3. 我必须创建组合过滤器才能在所有sbBrowser = firefox上仅使用envConfig运行。

    如何构建表达式?

    类似的东西:

    sbBrowser=="firefox" && envConfig=="pp1" "pp2" "pp3" "staging" "systemtest"
    

4 个答案:

答案 0 :(得分:6)

如果你想让它只运行firefox,在envConfig的所有值上,那么为什么要指定envConfig集的成员?只需执行(sbBrowser=="firefox"),它就只能在Firefox上运行,适用于envConfig的所有成员。

答案 1 :(得分:5)

好的,以下表达式可用作魅力:

(sbBrowser=="firefox")  && (envConfig=="pp1") ||(sbBrowser=="firefox")  && (envConfig=="pp2")||(sbBrowser=="firefox")  && (envConfig=="pp3")||(sbBrowser=="firefox")  && (envConfig=="staging")||(sbBrowser=="firefox")  && (envConfig=="systemtest")

答案 2 :(得分:0)

如果在其他构建参数中定义了groovy表达式,例如,当使用定义默认组合的Matrix Combinations Parameter时 - 参数名称应该在evaluate()内:

Matrix Combinations Parameter

...

enter image description here

您还必须批准使用

  

方法groovy.lang.Script评估java.lang.String

管理Jenkins 下的

- > 进程内脚本批准

答案 3 :(得分:0)

您可以通过这种方式进行操作

(sbBrowser=="firefox") && ["pp1","pp2","pp3","staging","systemtest"].contains(envConfig)