如何使用批处理命令在Hudson中使构建失败

3

我正在使用Hudson进行HTML构建。使用持续集成的主要原因是在每个文件中使用CSE验证器验证HTML文件。为了验证HTML,我使用了以下代码:

@echo off

PUSHD "F:\Solutions\Documents\Design\html\ValTest"
For %%X in (*.html) do (
"C:\Program Files\HTMLValidator100\cmdlineprocessor"  -outputfile output.txt   -r1 %%X
set HTMLVAL_ERROR=%ERRORLEVEL%
type output.txt >> result.txt
)

    set ERRORLEVEL=%HTMLVAL_ERROR%

POPD

验证过程正常运行,但即使HTML文件存在错误,Hudson也不会将构建触发为失败,它总是成功。

请告诉我如何从批处理命令中触发构建失败。

1个回答

0

你应该使用 exit 命令:

@echo off

PUSHD "F:\Solutions\Documents\Design\html\ValTest" For %%X in (*.html) do ( "C:\Program Files\HTMLValidator100\cmdlineprocessor" -outputfile output.txt -r1 %%X set HTMLVAL_ERROR=%ERRORLEVEL% type output.txt >> result.txt )

POPD

exit %HTMLVAL_ERROR%

该命令设置整个批处理的错误级别。


但是仍然成功了,输出文件显示文件中有1个错误,其中有三个HTML文件,其中一个的结果是CSE HTML验证器专业版v10.01(未注册)。检查“test.html”(16447个字符)。文件日期为2010年12月07日星期二上午11:26:37。文件于2011年2月18日星期五上午10:31:33进行了检查。检查的行数:68,用时0.00秒。运行的程序数:168,结束标记数:59(具有结束标记的开始标记的73.8%),消息数:16,错误数:1(第68行第一个),警告数:20(第2行第一个),其他两个文件几乎相同。 - sudheshna
如果您尝试在Hudson中执行一个简单的Windows批处理:exit 1,您会发现它会导致作业失败。所以我猜测您的HTMLVAL_ERROR没有正确设置。也许是由于循环,它只采用最后一个HTML文件的错误值,因此如果最后一个文件成功... - Mathieu Roger
所有的HTML文件都存在验证错误,但是它们的错误级别仍然为0。 - sudheshna

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接