Вернуть строку из пакетного файла Windows - PullRequest
0 голосов
/ 19 января 2019

Я хочу найти целевую ветвь, когда запрос на отправку отправляется на GitHub, в моем конвейере Jenkins.Для этого я делаю следующее:

Я вызываю командный файл Windows из моего Jenkinsfile, который, в свою очередь, вызывает скрипт nodejs.Этот скрипт внутренне вызывает API GitHub для получения целевой ветви, которая должна быть установлена ​​для некоторой переменной в Jenkinsfile (фрагмент кода приведен ниже): Jenkinsfile

env.TARGET_BRANCH = bat "GetTargetBranchFromGit.bat ${env.BRANCH_NAME}"

BatchFile:

node getTargetBranchForPR.js %1

Нок сожалению, переменная env.TARGET_BRANCH не устанавливается в целевую ветвь, даже если скрипт nodejs получает правильное значение.На самом деле я не могу вернуть значение из командного файла.Может ли кто-нибудь помочь мне здесь?

1 Ответ

0 голосов
/ 21 января 2019

@ npocmaka - это правильный путь: Как получить выходные данные команды оболочки, выполненной с использованием переменной, из Jenkinsfile (groovy)?

С учетом Документация Дженкинса .

returnStdout (необязательно) Если этот флажок установлен, стандартный вывод задачи возвращается как значение шага в виде строки, а не выводится в журнал сборки.(Стандартная ошибка, если таковая имеется, все равно будет напечатана в журнале.) Вам часто нужно вызывать .trim () для результата, чтобы убрать завершающий перевод строки.

Так что ваш код должен выглядетькак

env.TARGET_BRANCH = bat( script: "GetTargetBranchFromGit.bat ${env.BRANCH_NAME}",
                         returnStdout: true
).trim()

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

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