l-6ren">
gpt4 book ai didi

testing - 在 hudson 中设置测试构建作业,检测 make 何时无法编译

转载 作者:行者123 更新时间:2023-11-28 21:03:15 25 4
gpt4 key购买 nike

我在 hudson 中建立了一个“自由式项目”,它从 svn 存储库中检查我的源代码。然后我添加了一个“shell 步骤”来构建代码:

echo "# $JOB_NAME: $BUILD_ID" >log
cd to/my/path/
qmake &>>$WORKSPACE/log
make &>>$WORKSPACE/log

运行测试后, hudson 说 t 成功了。当我查看构建的控制台输出时,我发现:

In file included from src/tut.h:47,
from src/tut3module.cpp:1:
src/log.h:69: error: ‘uint8_t’ has not been declared
make: *** [obj/tut3module.o] Fehler 1
Finished: SUCCESS

为什么 hudson 不识别这个错误?我必须如何配置作业?

如果您需要有关我的配置的更多信息,请告诉我!

感谢您的帮助!

最佳答案

Hudson 使用构建步骤的错误代码来确定构建步骤是成功还是失败。您的整个构建步骤将转换为一个脚本。如果您不在脚本中的某处调用 exit,脚本的last 命令的退出代码将成为脚本的退出代码。

看下面的脚本

copy readme.txt dd:
type readme.txt

让我们假设 readme.txt 存在。复制将失败,错误代码为 1,因为 dd: 是未知设备。 type 命令将成功,因此构建步骤本身将返回成功。因此,要么将构建命令分开,要么在每个命令后检查错误代码。系统管理员向我推荐了第三种方法:运行脚本并检查结果。因此,在您的情况下,只要您的构建工件存在,您的构建就应该有效。

当然你也可以使用sagar提到的log parser插件。但是如果你能避免它,那就使用检查错误代码的脚本,然后依赖日志解析器。顺便说一句,有些命令偏离标准并返回非零错误代码,即使在成功的情况下也是如此。

关于testing - 在 hudson 中设置测试构建作业,检测 make 何时无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4334591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com