Jenkins条件步骤令牌逻辑运算符

时间:2016-01-26 18:29:59

标签: jenkins conditional boolean-operations

我从文件myprop.property注入环境变量,该文件包含以下内容:

  

var1 = y
  VAR2 = Y

构建步骤:
 1.注入环境变量:

  

属性文件路径:$ {JENKINS_HOME} /myprop.propertie


  1. 执行Windows批处理命令(以验证成功注入的变量)
  2.   

    echo var1 =%var1%
    echo var2 =%var2%

    1. 条件步骤(多个)
    2.   

      运行?:布尔条件
        令牌:$ {ENV,var =“var1”} || $ {ENV,var =“var2”}
        满足条件时运行的步骤:echo Yes,works!

      运行构建,步骤3中的条件从未满足,而步骤2显示正确的变量值。 我试过条件和操作符:

        

      var1 = y,var2 = y:$ {ENV,var =“var1”} || $ {ENV,var =“var2”}
        var1 = y,var2 = y:$ {ENV,var =“var1”} | $ {ENV,var =“var2”}

           

      var1 = y,var2 = n:$ {ENV,var =“var1”} || $ {ENV,var =“var2”}
        var1 = y,var2 = n:$ {ENV,var =“var1”} | $ {ENV,var =“var2”}

      值的大写或小写没有任何区别。我正在Windows 7专业版上运行jenkins 1.641 如果我只使用一个,例如令牌字段中的$ {ENV,var =“var1”},它按预期工作。

3 个答案:

答案 0 :(得分:1)

这样可行,将步骤3更改为:

  

跑?:或者   布尔条件
  令牌:$ {ENV,var =“var1”}
  或
  布尔条件
  令牌:$ {ENV,var =“var2”}
  <强>从不

这些实际上是三个条件。执行首先断言第一个条件,如果满足,则停止检查;如果不满足,断言第二;依此类推,直到从不的最后一个条件,这意味着如果没有满足条件,则停止执行该步骤。

答案 1 :(得分:1)

试试这个,它对我有用,我们需要在图像中提到带有令牌的布尔条件。

enter image description here

答案 2 :(得分:0)

我看到我的帖子引起了很多兴趣。以下是我最终解决的问题。

使用正则表达式匹配似乎比使用布尔条件更具可读性。

如果逻辑是“ OR ”,

? = Regular expression match
expression = ${ENV,var="var1"}|${ENV,var="var2"}
Label = Y

请注意,逻辑运算符是单个'|'不是双倍'||'

如果逻辑是“AND”

? = Regular expression match
expression = ${ENV,var="var1"}${ENV,var="var2"}
Label = YY

expression只是两个变量的串联,而Label也是如此。