Декларативный Jenkinsfile не завершается, даже если shell-скрипт возвращает ненулевое значение - PullRequest
0 голосов
/ 19 октября 2018

Рассмотрим этот фрагмент из моего декларативного синтаксиса Jenkinsfile

stage("Test") {
      steps {
        sh "sh run-tests.sh"
      }
}

Несмотря на то, что сценарий run-tests.sh завершается с кодом 1, выполнение задания Jenkins продолжается до следующего шага.Кто-нибудь знает, что может быть причиной этого?

РЕДАКТИРОВАТЬ: Спасибо за ответы до сих пор.Я считаю, что проблема кроется в другом: выполняемые тесты инициируются библиотекой Python nose2, и, если я не ошибаюсь, именно эта команда завершается с 0 независимо от состояния тестов.Я пока последую этому примеру и посмотрю, решит ли это все.

1 Ответ

0 голосов
/ 22 октября 2018

Я нашел решение.Я запускаю тесты, используя docker-compose, и получается, что docker-compose возвращает 0 независимо от того, что вернул мой тестовый скрипт.См. этот пост для получения дополнительной информации.

Я добавил параметр --exit-code-from в свою команду docker-compose up, и теперь мое задание CI прерывается с тем же кодом завершения, что и мой Jenkinsfile (и, следовательно, мой тестовый скрипт).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...