Как я могу сообщить об ошибке вызывающей стороне из вызванного скрипта в powershell - PullRequest
1 голос
/ 06 апреля 2020

Я использую jenkins для управления сценарием powershell. Скрипт является build.ps1. В конвейере Jenkins я указываю

powershell './build.ps1'

Я также пытался

powershell './build.ps1; exit $LastExitCode'

У меня есть опечатка в моем build.ps1, или я также получаю сбои сборки, но Дженкинс отмечает это как успех тем не мение. Причина в том, что ошибки, по-видимому, не передаются от исполнения build.ps1 к PowerShell, порожденному Дженкинсом. $ LastExitCode всегда равен нулю. Я проверял это в обычном приглашении PS со сломанным сценарием

./broken.ps1; echo $LastExitCode

дает ноль, даже если test.ps1 выдает ошибку.

Я также пытался вызвать с &. Тот же эффект.

1 Ответ

1 голос
/ 06 апреля 2020

Попробуйте добавить следующее в свой Build.ps1

$ErrorActionPreference = 'Stop'
#
# YOUR CODE
#
trap{
    echo "Error while building, error: $($Error[0] | select *)"
    exit 1
}

Это должно перехватить все ошибки и выйти с кодом ошибки 1.

Также, если вы можете добавить скриншот вашего Дженкинс настраивает, когда вы вызываете скрипт, просто чтобы убедиться, что я думаю, что это именно то, что есть.

Надеюсь, это поможет, удачи.

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