присвоение из groovy функции return не останавливает сборку - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть отличная функция, возвращающая код ошибки (1). Я не пытаюсь использовать это возвращаемое значение для некоторых действий, таких как обновление контекста github.

У меня проблема с тем, что на шаге не отображается ошибка, если я не использую manager.build.@result = hudson.model.Result.FAILURE в своем операторе else. Это установит состояние шага как ошибку, но не установит команду как ошибку в Blue Ocean.

Есть ли более простой способ справиться с этим вариантом использования или я что-то упустил?

blue ocean states

Вот упрощенный пример

Groovy file

def foo() {
  def status_code = sh(
    script: "echo 1",
    returnStatus: true
  )
  echo "${status_code}" // displays 1
  return status_code
}

Pipeline

stage() {
    steps {
        script {
            BUILD = foo()
            echo "${BUILD}" // displays 1
            if ("${BUILD}" == "0") {
                echo "build success"
            } else {
                echo "build failure" // I reach here
            }
        }
    }
}

1 Ответ

0 голосов
/ 05 сентября 2018

Вы можете использовать error step вместо echo, если хотите отобразить ошибку и пометить сборку как неудачную.

stage() {
    steps {
        script {
            BUILD = foo()
            echo "${BUILD}" // displays 1
            if ("${BUILD}" == "0") {
                echo "build success"
            } else {
                error "build failure" // I reach here
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...