Groovy 管道 if-else 条件
Groovy pipeline if-else condition
所以我尝试设置 variable
我工作的基础 {currentBuild.currentResult}
状态。
script {
if ({currentBuild.currentResult} == "SUCCESS") {
HEADER_COLOR = "green"
} else {
HEADER_COLOR = "Red"
}
}
虽然作业通过且状态为 SUCCESS
,但执行了 else 条件,所以我将 print 放在 else 部分:
else {
echo "${currentBuild.currentResult}"
HEADER_COLOR = "red"
}
而echo "${currentBuild.currentResult}"
内的值为SUCCESS
。
也许我需要以其他方式使用此 if-else
?
你 if-else 没问题,但是你用条件给它的方式是错误的。
应该是:
if (currentBuild.currentResult == "SUCCESS") {
或(奇怪的方式)
if ("${currentBuild.currentResult}" == "SUCCESS") {
或(艰难的方式)
if ({currentBuild.currentResult}() == "SUCCESS") {
或(更难的方法)
if ({currentBuild.currentResult}.call() == "SUCCESS") {
为什么?
您原来的 if
将始终计算为 false
,因为您将内联闭包实例与 "SUCCESS"
进行比较,而 true
.
所以我尝试设置 variable
我工作的基础 {currentBuild.currentResult}
状态。
script {
if ({currentBuild.currentResult} == "SUCCESS") {
HEADER_COLOR = "green"
} else {
HEADER_COLOR = "Red"
}
}
虽然作业通过且状态为 SUCCESS
,但执行了 else 条件,所以我将 print 放在 else 部分:
else {
echo "${currentBuild.currentResult}"
HEADER_COLOR = "red"
}
而echo "${currentBuild.currentResult}"
内的值为SUCCESS
。
也许我需要以其他方式使用此 if-else
?
你 if-else 没问题,但是你用条件给它的方式是错误的。
应该是:
if (currentBuild.currentResult == "SUCCESS") {
或(奇怪的方式)
if ("${currentBuild.currentResult}" == "SUCCESS") {
或(艰难的方式)
if ({currentBuild.currentResult}() == "SUCCESS") {
或(更难的方法)
if ({currentBuild.currentResult}.call() == "SUCCESS") {
为什么?
您原来的 if
将始终计算为 false
,因为您将内联闭包实例与 "SUCCESS"
进行比较,而 true
.