来自 groovy 函数 return 的赋值不会停止构建
assignment from groovy function return doesn't stop build
我有一个 groovy 函数 return 正在处理错误代码 (1)。我并没有尝试使用此 return 值来执行某些操作,例如更新 github 上下文。
我遇到的问题是,除非我在我的 else
语句中使用 manager.build.@result = hudson.model.Result.FAILURE
,否则该步骤不会显示错误。这样做会将步骤状态设置为错误,但不会在 Blue Ocean 中将命令设置为错误。
是否有更简单的方法来处理这个用例,或者我是否遗漏了什么?
这是一个简化的例子
Groovy 文件
def foo() {
def status_code = sh(
script: "echo 1",
returnStatus: true
)
echo "${status_code}" // displays 1
return status_code
}
流水线
stage() {
steps {
script {
BUILD = foo()
echo "${BUILD}" // displays 1
if ("${BUILD}" == "0") {
echo "build success"
} else {
echo "build failure" // I reach here
}
}
}
}
如果要显示错误并将构建标记为失败,可以使用 error
步骤代替 echo
。
stage() {
steps {
script {
BUILD = foo()
echo "${BUILD}" // displays 1
if ("${BUILD}" == "0") {
echo "build success"
} else {
error "build failure" // I reach here
}
}
}
}
我有一个 groovy 函数 return 正在处理错误代码 (1)。我并没有尝试使用此 return 值来执行某些操作,例如更新 github 上下文。
我遇到的问题是,除非我在我的 else
语句中使用 manager.build.@result = hudson.model.Result.FAILURE
,否则该步骤不会显示错误。这样做会将步骤状态设置为错误,但不会在 Blue Ocean 中将命令设置为错误。
是否有更简单的方法来处理这个用例,或者我是否遗漏了什么?
这是一个简化的例子
Groovy 文件
def foo() {
def status_code = sh(
script: "echo 1",
returnStatus: true
)
echo "${status_code}" // displays 1
return status_code
}
流水线
stage() {
steps {
script {
BUILD = foo()
echo "${BUILD}" // displays 1
if ("${BUILD}" == "0") {
echo "build success"
} else {
echo "build failure" // I reach here
}
}
}
}
如果要显示错误并将构建标记为失败,可以使用 error
步骤代替 echo
。
stage() {
steps {
script {
BUILD = foo()
echo "${BUILD}" // displays 1
if ("${BUILD}" == "0") {
echo "build success"
} else {
error "build failure" // I reach here
}
}
}
}