使用Windows批处理命令配置Jenkins CI作业和FreeFileSync批处理

Olu*_*emi 7 windows continuous-integration command-line cmd jenkins

我刚刚设置了Jenkins CI作为我的构建服务器但是我在正确配置FreeFileSync批处理文件和调用用于在构建应用程序之后部署应用程序的批处理文件的命令时遇到了问题.

call Path\deploy.ffs_batch
Run Code Online (Sandbox Code Playgroud)

如果deploy.ffs_batch执行成功,构建控制台将显示成功.但是在deploy.ffs_batch设置错误的情况下,例如错误路径作为目标,构建永远不会停止,并且Hudson上的控制台日志微调器不停地旋转而不提供任何信息.

我尝试过将上面的命令添加到Windows批处理命令之下:

if %errorlevel% neq 0 exit %errorlevel%
Run Code Online (Sandbox Code Playgroud)

但是构建仍然不开心(旋转器一直在旋转).

但是,当我检查FreeFileSync批处理文件的日志文件夹时,我看到:

[03:52:46 PM]信息:开始比较
[03:52:46 PM]错误:找不到以下文件夹:D:\ Deploy\1\Dev您可以忽略此错误,将每个文件夹视为空.然后将在同步期间自动创建文件夹.
[03:52:46 PM]错误:同步已停止

我理解错误,我可以解决它.但是,当发生这种情况时,我真的不想总是在日志文件夹中查找答案.所以我的问题是如何在Hudson控制台日志上输出FreeFileSync错误并使用Windows批处理命令中止构建?

Olu*_*emi 2

我发现发生错误时我错过了一个重要步骤,那就是在发生错误时停止同步,以防止 hudson 作业构建无休止地运行。

FreeFileSync 批处理作业

将其设置为停止后,我将批处理命令更新为:

cd "Path\FreeFileSync\" 
FreeFileSync.exe "Path\deploy.ffs_batch"
echo.
echo.
echo ===============================================================================
echo ##### Results :
echo ===============================================================================
echo.
echo.
@echo off
for /f "delims=" %%x in ('dir "Path\logs\" /od /b') do set recent=%%x
echo.
echo ===============================================================================
if %ERRORLEVEL% == 0 goto SYNCSUCCESS
if %ERRORLEVEL% == 1 goto SYNCWARNINGS
if %ERRORLEVEL% == 2 goto SYNCERRORS
if %ERRORLEVEL% == 3 goto SYNCABORTED
goto SYNCFAIL
:SYNCFAIL
echo ##### FreeFileSync failed.
type "path\logs\%recent%"
exit 2
:SYNCSUCCESS
echo ##### FreeFileSync completed successfully!
exit 0
:SYNCWARNINGS
echo ##### FreeFileSync completed, but with warnings.
type "path\logs\%recent%"
exit 1
:SYNCERRORS
echo ##### FreeFileSync completed, but with warnings.
type "path\logs\%recent%"
exit 2
:SYNCABORTED
echo ##### FreeFileSync aborted.
type "path\logs\%recent%"
exit 3
Run Code Online (Sandbox Code Playgroud)

请注意:还需要选中运行最小化复选框以避免作业连续运行。作业运行并在出现错误时停止。