我从文件myprop.property注入环境变量,该文件包含以下内容:
var1 = y
VAR2 = Y
构建步骤:
1.注入环境变量:
属性文件路径:$ {JENKINS_HOME} /myprop.propertie
echo var1 =%var1%
echo var2 =%var2%
运行?:布尔条件
令牌:$ {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”},它按预期工作。
答案 0 :(得分:1)
这样可行,将步骤3更改为:
跑?:或者 布尔条件
令牌:$ {ENV,var =“var1”}
或
布尔条件
令牌:$ {ENV,var =“var2”}
<强>从不强>
这些实际上是三个条件。执行首先断言第一个条件,如果满足,则停止检查;如果不满足,断言第二;依此类推,直到从不的最后一个条件,这意味着如果没有满足条件,则停止执行该步骤。
答案 1 :(得分:1)
答案 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
也是如此。