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.