【问题标题】:Jenkins Windows Execute Command Line BitVise sexec Fails with exit 1000 at the endJenkins Windows 执行命令行 BitVise sexec 失败,最后退出 1000
【发布时间】:2019-01-15 19:21:19
【问题描述】:

我只是在 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 总是认为它是一个错误的状态并且构建失败。

有人可以告诉我如何告诉 Jenkins 在使用 Windows 批处理执行时退出 1000 是成功的吗?

【问题讨论】:

  • 原来这个问题不仅仅出在 7zip 命令行上。我使用执行 Windows 批处理发出的所有命令都以退出 1000 结束,即使一切似乎都很好。唯一常见的是我使用 sexec 并在远程服务器上执行它们。

标签: windows shell jenkins


【解决方案1】:

终于想出了一个办法来完成这项工作。

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

然后在批处理文件中我有代码:

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

当 sexec 返回 1000 时将 errorlevel 设置为 0

【讨论】:

    猜你喜欢
    • 2015-09-01
    • 1970-01-01
    • 2015-05-18
    • 2021-03-28
    • 2021-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多