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

Configuring Jenkins CI Job and FreeFileSync Batch Using Windows Batch Command

我刚刚将 Jenkins CI 设置为我的构建服务器,但我在正确配置 FreeFileSync 批处理文件时遇到问题以及在构建应用程序后调用用于部署应用程序的批处理文件的命令。

call Path\deploy.ffs_batch

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

我尝试将此命令添加到 Windows 批处理命令中:

if %errorlevel% neq 0 exit %errorlevel%

但 build 仍然不开心(微调器一直在旋转)。

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

[03:52:46 PM] Info: Starting comparison
[03:52:46 PM] Error: Cannot find the following folders: D:\Deploy\Dev You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.
[03:52:46 PM] Error: Synchronization stopped

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

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

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

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

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