Как направить вывод строки Cmd в Jenkins - PullRequest
2 голосов
/ 18 апреля 2020
Stage("execution") {
    Steps {
       bat 'start cmd.exe /c c:\\users\\doc\\sample.bat'
    }
}

Приведенный выше скрипт просто открывает приглашение cmd и выполняет его. Он не принимает вывод исполнения. Даже в случае сбоя выполнения этап отображается как успешный и переходит к следующему этапу развертывания. Я хочу разработать его таким образом, чтобы вывод в приглашении cmd был воспринят Jenkins, а сценарий go включен. Если во время выполнения происходит сбой этапа, этап должен показывать сбой, а при успешном выполнении этап должен показывать успех в Jenkins. Может кто-нибудь помочь?

Еще один вопрос: если командный файл находится в Git, как указать путь в приведенном выше скрипте?

1 Ответ

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

Используя команду start, вы создаете новый отдельный процесс консоли, который Jenkins не может отследить.

Вместо этого сделайте это следующим образом:

bat 'call "c:\\users\\doc\\sample.bat"'

Это запустит пакет файл в той же среде, что и текущий сценарий, и ожидает завершения пакетного файла. Дженкинс сможет захватывать стандартный вывод и обнаруживать ошибки с помощью кода завершения командного файла.

Вы можете написать @call, чтобы скрыть командную строку от вывода.

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