Я просто настраиваю новую систему Jenkins на Windows server 2016.
Одним из моих шагов сборки является выполнение командного файла, который я использовал с FinalBuilder.
Этот пакетный файл создает резервную копию 7z моего существующего веб-сайта, прежде чем перезаписать его.
Вот моя команда в Jenkins (некоторые параметры явно изменены для конфиденциальности в этом посте):
sexec myuser@myserver.cloudapp.net -pw=mypassword -cmd="bvBackup C:\inetpub\SiteName SiteName"
Вот содержимое bvBackup.bat:
cd %1
for /f "tokens=2-8 delims=.:/ " %%a in ("%date% %time%") do set DateNtime=%%c-%%a-%%b_%%d-%%e-%%f
7z a -r ..\%2Backup\%2_%DateNtime% *.*
По сути, он просто архивирует файлы в архив с текущей датой и временем в имени.
Вот несколько последних строк вывода с консоли Jenkins:
12:14:42 Compressing site\bin\UserAuthorization.dll
12:14:42 Compressing site\bin\WebGrease.dll
12:14:42 Compressing site\bin\zlib1.dll
12:14:42
12:14:42 Everything is Ok
12:14:42
12:14:42 D:\Jenkins\workspace\MyProjectName - Staging>exit 1000
12:14:42 Build step 'Execute Windows batch command' marked build as failure
12:14:42 Finished: FAILURE
То, что я пытаюсь выяснить, это то, откуда идет выход 100. Это не часть моего командного файла. 7zip говорит, что все в порядке.
Путь на D: путь к рабочей папке jenkins. Все остальное от нашего промежуточного сервера, где сжатие происходит через оболочку sexec ssh.
Почему это не получается, когда вывод с работы, кажется, в порядке? Откуда идет выход 1000?
Обновление: Оказывается, выход 1000 исходит от sexec и является нормальным. Я пробовал несколько вещей в моем пакетном файле, который выполняется, чтобы справиться с ним, но Дженкинс всегда полагает, что это плохое состояние, и сбой сборки.
Может кто-нибудь сказать мне, как сказать Дженкинсу, что выход 1000 - это успех при использовании пакетного выполнения Windows?