У меня есть настройка Hudson на сервере CI, я использую robocopy для копирования файлов на веб-сервер.
У меня проблемы с кодами выхода. Robocopy сообщает так много разных кодов выхода для успеха и неудачи, что hudson их не понимает и сообщает что-либо, кроме 0, как сбой.
Я думал, что мне удалось обойти это, дважды вызвав robocopy для выполнения одной и той же работы. Итак, в первый раз он выполняет задачу и возвращает ненулевой код выхода, а в следующий раз, когда ему нечего копировать, он возвращает 0. Это работает, когда я нажимаю кнопку сборки на Hudson, но не когда он отслеживает репозиторий git для некоторая причина.
Итак, мой вопрос: могу ли я сообщить Хадсону об отдельных кодах выхода, чтобы сборка прошла успешно, или мне придется создать оболочку вокруг robocopy, чтобы предоставить коды выхода, которые понимает Хадсон?
Ура
Том
ОБНОВИТЬ После ответа Питера я добавил следующие утверждения в конец моего скрипта robocopy.
if ERRORLEVEL 1 set ERRORLEVEL=0
if ERRORLEVEL 2 set ERRORLEVEL=0
if ERRORLEVEL 3 set ERRORLEVEL=0
if ERRORLEVEL 5 set ERRORLEVEL=0
if ERRORLEVEL 6 set ERRORLEVEL=0
if ERRORLEVEL 7 set ERRORLEVEL=0
Поскольку все, что ниже 8, считается успешным для robocopy, это переводит коды ошибок для hudson и сообщает об успехе. Думаю, в какой-то момент я смогу реорганизовать это.
Спасибо за помощь, Питер!
ОБНОВИТЬ
Рефакторинг этого предложения Питера:
если% ERRORLEVEL% LEQ 7 установлен ERRORLEVEL = 0
Это довольно просто. Вы должны перевести коды ошибок для Hudson. Я использую следующий оператор после моего robocopy
if ERRORLEVEL 1 set ERRORLEVEL=0
Я искал коды ошибок robocopy и нашел следующую страницу. Вы также можете поискать коды ошибок на страницах Microsoft.
http://www.mysidenotes.com/2008/02/15/robocopy-errorlevel-return-codes-found-in-robocopydoc/