Jenkins 条件步骤令牌逻辑运算符
Jenkins conditional steps token logic operators
我从包含以下内容的文件 myprop.property 中注入环境变量:
var1=y
var2=y
构建步骤:
1、注入环境变量:
Property File Path:${JENKINS_HOME}/myprop.propertie
- 执行Windows批处理命令(验证变量注入成功)
echo var1 = %var1%
echo var2 = %var2%
- 条件步骤(多个)
Run?: Boolean condition
Token: ${ENV,var="var1"}||${ENV,var="var2"}
Steps to run if condition is met: 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"}
值的大写或小写没有任何区别。我是 运行 jenkins 1.641 windows 7 pro.
如果我只使用一个,例如${ENV,var="var1"} 在令牌字段中,它按预期工作。
有效,将第 3 步更改为:
Run?: Or
Boolean condition
Token: ${ENV,var="var1"}
Or
Boolean condition
Token: ${ENV,var="var2"}
Never
这其实就是三个条件。执行首先断言第一个条件,如果满足,停止检查;如果不满足,断言第二个;依此类推,直到最后一个条件 Never,这意味着如果不满足任何条件,则停止执行该步骤。
试试这个,它对我有用,我们需要提到图像中提到的带有标记的布尔条件。
我发现我的 post 吸引了很多人的兴趣。这是我最终解决的问题。
使用正则表达式匹配似乎比使用布尔条件.
更具可读性
如果逻辑是“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
也是如此。
我从包含以下内容的文件 myprop.property 中注入环境变量:
var1=y
var2=y
构建步骤:
1、注入环境变量:
Property File Path:${JENKINS_HOME}/myprop.propertie
- 执行Windows批处理命令(验证变量注入成功)
echo var1 = %var1%
echo var2 = %var2%
- 条件步骤(多个)
Run?: Boolean condition
Token: ${ENV,var="var1"}||${ENV,var="var2"}
Steps to run if condition is met: 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"}
值的大写或小写没有任何区别。我是 运行 jenkins 1.641 windows 7 pro.
如果我只使用一个,例如${ENV,var="var1"} 在令牌字段中,它按预期工作。
有效,将第 3 步更改为:
Run?: Or
Boolean condition
Token: ${ENV,var="var1"}
Or
Boolean condition
Token: ${ENV,var="var2"}
Never
这其实就是三个条件。执行首先断言第一个条件,如果满足,停止检查;如果不满足,断言第二个;依此类推,直到最后一个条件 Never,这意味着如果不满足任何条件,则停止执行该步骤。
试试这个,它对我有用,我们需要提到图像中提到的带有标记的布尔条件。
我发现我的 post 吸引了很多人的兴趣。这是我最终解决的问题。
使用正则表达式匹配似乎比使用布尔条件.
更具可读性如果逻辑是“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
也是如此。