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

标签 windows jenkins command-line cmd continuous-integration

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

call Path\deploy.ffs_batch

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

我尝试的是将此命令添加到 Windows 批处理命令的上面:

if %errorlevel% neq 0 exit %errorlevel%

但构建仍然不快乐(微调器一直在旋转)。

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

[03:52:46 PM] Info: Starting comparison
[03:52:46 PM] Error: Cannot find the following folders: D:\Deploy\1\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 作业构建无休止地运行。

FreeFileSync Batch Job

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

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

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

关于windows - 使用 Windows 批处理命令配置 Jenkins CI 作业和 FreeFileSync 批处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31871679/

相关文章:

c# - 我在 C# 中的程序的注销部分出错,我能得到一些帮助吗?

windows - 为什么在 64 位 Windows 上 64 位 DLL 转到 System32,而 32 位 DLL 转到 SysWoW64?

windows - windows批处理文件中的字符串处理: How to pad value with leading zeros?

android - 停止 Robotium 测试执行

docker - kubectl 从 pod 内部创建

mysql - 将 MySql 从 Windows 传输到 ubuntu

command-line - 如果从命令行启动,则输出到命令行

linux - bash 中的自定义命令路径错误

powershell - 使用 Tee 从另一个 shell 运行 PowerShell

scala - Spark : Create temporary table by executing sql query on temporary tables