Шаг сборки командной строки TeamCity 7.0.1 и ОШИБКА
У меня есть шаг сборки в моей конфигурации сборки, это тип бегуна "Командная строка", выполняющий пользовательский скрипт.
Скрипт выполняет Robocopy:
robocopy "%teamcity.build.workingDir%\Code" "\\target\d$\Web\Target Sites" /E /NP /LOG:robocopy.log
if ERRORLEVEL GEQ 4 (
"D:\blat.exe" "robocopy.log" -to me@me.com -f me@me.com -subject "Error during robocopy on TEAMCITY" -server mail.me.com
)
exit /B 0
Команда Robocopy работает нормально, но я продолжаю получать электронное письмо, а в журнале сборки вижу:
GEQ был неожиданным в это время.
Проверка ERRORLEVEL по какой-то причине не работает?
Я старался IF %ERRORLEVEL% GEQ
но это ломает мою сборку, и TeamCity ожидает, что я передам параметр сборки.
Это работает только как "Исполняемый файл с параметрами"?
ура
2 ответа
Решение
Нил, ты можешь попытаться избежать знака процента.
Пытаться IF %%ERRORLEVEL%% GEQ ...
Я только что столкнулся с этой проблемой и ценю ответ @ Джона.
Вот что я придумал:
robocopy [from] [to] /MIR
REM http://ss64.com/nt/robocopy-exit.html
IF %%ERRORLEVEL%% EQU 0 (
ECHO No errors occurred, and no copying was done; The source and destination directory trees are completely synchronized.
EXIT 0
)
IF %%ERRORLEVEL%% EQU 1 (
ECHO One or more files were copied successfully, new files have arrived.
EXIT 0
)
IF %%ERRORLEVEL%% EQU 2 (
ECHO Some Extra files or directories were detected. No files were copied.
EXIT 0
)
IF %%ERRORLEVEL%% GEQ 3 (
ECHO Robocopy Exit Codes: http://ss64.com/nt/robocopy-exit.html
EXIT %%ERRORLEVEL%%
)