Назад | Перейти на главную страницу

Хадсон копирует файлы с помощью Robocopy

У меня есть настройка 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/