我试图通过使用batch-through-Jenkins确定git分支是否存在于特定位置。据我所知,Jenkins运行的命令类似于批处理shell脚本的运行方式。在研究了关于堆栈溢出的这个问题(并找到了关于这个类似问题的几页)之后,我现在有了检查git分支是否存在的代码。代码如下:
@echo off
cd D:\git\ceos
git rev-parse --verify temp
if %ERRORLEVEL% == 0 (
echo Branch Exists
) else (
echo Branch Does Not Exist
)
这里是我的问题:如果分支“temp”确实存在,那么这段代码工作正常并返回“branch exists”。但是,如果“temp”不存在,Jenkins作业将失败
fatal: Needed a single revision
Branch Does Not Exist
很明显,它仍然进入if语句的正确分支,因为它返回“分支不存在”,但由于某种原因仍然失败。
我的问题是:即使我的代码的逻辑可以工作(多亏了其他堆栈溢出问题),我如何在没有分支temp的情况下防止这个作业失败?
更新:
结果表明,作业失败的原因是%ERRORLEVEL%被设置为0以外的值,当到达脚本末尾时,如果没有正确的退出代码,Jenkins作业将无法通过。因此,在“else”分支中,我只是将errorlevel设置回0,它就通过了。