Jenkins Windows执行命令行BitVise sexec失败,结尾处是退出1000

时间:2019-01-15 19:21:20

标签: windows shell jenkins

我只是在Windows Server 2016上设置了一个新的Jenkins系统。

我的构建步骤之一是执行与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 shell进行的。

当作品的输出看起来不错时,为什么会失败?出口1000从哪里来?

更新:结果表明退出通道1000来自sexec且正常。我已经在批处理文件中尝试了几种方法来执行处理,但是Jenkins始终认为这是一种错误状态,并且构建失败。

有人可以告诉我如何使用Windows Batch Execution告诉Jenkins退出1000成功吗?

1 个答案:

答案 0 :(得分:0)

最后想出了一种方法来完成这项工作。

我将在jenkins中直接执行sexec改为从Jenkins调用批处理文件。

然后在批处理文件中输入代码:

sexec -cmd=%1
if errorlevel 1000 goto success
goto end
:success
EXIT 0
:end

当sexec返回1000时,会将错误级别设置为0