Невозможно заменить значения параметров в командном файле - плагин PostBuildScript Jenkins - PullRequest
0 голосов
/ 21 февраля 2020

Я использую плагин PostBuildScript в Jenkins для запуска некоторой windows пакетной команды в действии посткомпоновки

Я добавляю команду «Выполнить скрипт» в действии посткомпоновки в задании

enter image description here

И это то, что я написал в directory.bat, чтобы создать каталог с текущим временем + среда + имя задания

for /f "tokens=1* delims=" %%a in ('date /T') do set datestr=%%a

set time=%TIME:~0,2%"_"%TIME:~3,2%

mkdir D:\Report_Backup\%date:/=%"_"%time%"_"%Environment%"_"%JOB_NAME%\%test-results

xcopy "D:\bvt_workspace\project-name\test-results" D:\Report_Backup\%date:/=%"_"%time%"_"%Environment%"_"%JOB_NAME%\test-results /E /S /Q /Y

К сожалению Environment и JOB_NAME не получили замену. Но если я заменил тот же код в Execute Windows Batch Command в шаге сборки, это работает как шарм.

enter image description here

Примечание: Я не могу добавить несколько Build Step, так как я использую один для запуска сборки.

Есть идеи, как заставить это работать?

1 Ответ

1 голос
/ 22 февраля 2020

Похоже, что Скрипт, выполняемый плагином PostiBuildScript, не может использовать переменную окружения, определенную в проблеме Jenkins .

Предлагаемый обходной путь - настроить плагин для передачи желаемых переменных среды как Аргументы для пакетного сценария, в вашем случае:

D:\directory.bat $Environment $JOB_NAME

И в начале вашего directory.bat:

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