你在主构建步骤中使用了什么? Mavent?蚂蚁?自定义脚本?有很多方法可以做到这一点,它很大程度上取决于你的.exe的设计方式,这在OP中没有解释。
最简单的做法是从下拉菜单中添加另一个构建步骤。选择执行Windows批处理命令。在那里,写批处理命令启动.exe和捕获返回代码:
C:\Location_of_exe\your.exe
IF NOT "%ERRORLEVEL%" == "0" (
ECHO "Your exe failed"
EXIT /B 1
) ELSE (
ECHO "Your exe passed"
)
如果您的.exe就像正常的程序,它会返回退出代码为0时,成功的,否则它会返回一个非零退出代码。上述语句查找非零退出代码(指示某种故障),并且如果检测到的将退出批次,错误代码1本身EXIT /B 1
。这反过来会向Jenkins表明构建步骤失败,并将标记作业失败。
再次,这在很大程度上取决于您的.exe是正确,失败时返回非零退出代码。
至于“我也想exe文件来登录其他一些细节”,再次,完全取决于您的.exe
是否针对不同故障返回不同的退出代码? - 如果是这样,上述代码可以容易地修改,以捕获在日志中的所有可能性,并显示误差相应
它是一个命令行的.exe,在控制台中显示不同的错误?如果是这样,那么从批处理中调用它会自动在Jenkins日志中显示错误。如果.exe没有返回正确的退出代码,您也可以使用这种方法。您可以捕获命令行输出并使用findstr
来搜索特定的输出行以确定成功或失败
如果您的.exe是一个GUI应用程序,并且不会生成正确的退出代码,那么您无法告诉他们是成功还是失败(以及失败)
我会更新这个答案,如果你确定它是哪一个。
我正在使用MSBuild,并且我完全控制了EXE(我写它)。我可以编写失败返回非0。如果我明白你在说什么,我输出到控制台的任何内容都将被记录下来。我明天会测试这个。 – MillinMo
@MillinMo是的,任何输出到控制台将被记录。您也可以缩短将错误代码返回到'EXIT%ERRORLEVEL%' – jwernerny