我有一些代码与其他代码运行。假设命令x运行代码blah.c
我编写了一个脚本来检查该命令是否成功执行。我能够确定这一点。我将在hudson中提供的执行构建框中运行该脚本。
如果任何代码测试失败,我需要知道构建失败的人。意思是命令x在blah.c上运行失败了。
不是由maven建立的工作的最佳做法。是否有可能整合maven?
请,谢谢你。
答案 0 :(得分:2)
如果您正在运行shell脚本,则可以通过退出非零错误代码来指示失败。
run_my_command foo
if [ $? -ne 0 ]; then
echo "run_my_command failed"
exit 1
fi
我同意@ircmaxell的观点,即编写构建脚本比在Hudson中直接编写shell脚本更好。
答案 1 :(得分:1)
就我个人而言,我使用ANT或Phing作为此类事情。您可以指定完成“目标”所需的步骤。
因此,在您的情况下,您需要指定exec
任务。然后,您将在该任务上设置checkreturn
属性。这样,如果命令返回除0
之外的任何内容,它将使目标失败。而Hudson将自动失败。
关于这一点的好处是,您可以在Hudson之外手动执行ANT
构建任务(因此您无需提交验证它是否将成功构建)。我个人将我的phing build.xml文件保存在与我的项目相同的版本控制中,以便我始终可以使用它...
答案 2 :(得分:0)
是的,您可以使用M2 Extra Steps插件为hudson发布shell命令,在maven构建之前/之后,使用条件控制(例如,如果此命令失败,跳过运行Maven,中止构建)
我们使用它来在运行构建之前清理一些东西。