2010-08-25 58 views
2

我有一些代码针对其他代码运行。假设命令x运行代码blah.c哈德森和建筑脚本

我写了一个脚本来检查该命令是否成功执行。我能够确定这一点。我将在哈德森的执行构建框中运行脚本。

我需要知道如果任何代码测试失败,谁会构建失败。意思是在blah.c上运行的命令x在失败时返回。

未由maven构建的作业的最佳实践。是否有可能整合maven?

请谢谢。

回答

1

就我个人而言,我使用ANTPhing这种东西。您可以指定完成“目标”所需的步骤。

所以在你的情况下,你需要指定一个exec任务。然后,您将在该任务上设置checkreturn属性。这样,如果该命令返回除0之外的任何内容,则会导致目标失败。而哈德森将自动失败的构建。

关于这一点的好处是,您可以在Hudson之外手动执行ANT构建任务(因此您不需要提交以验证它是否会成功构建)。我亲自将我的phing build.xml文件保存在与我的项目相同的版本控制中,以便始终保持可用状态...

+0

我该在哪里做?你能举个例子吗? :) – myusuf3 2010-08-25 16:07:27

+0

它上面有一堆资源。这里有几个:[哈德森教程](http://www.vogella.de/articles/ContinuousIntegration/article.html),[CI教程](http://www.ibm.com/developerworks/java/tutorials/j-cq11207 /),[Ant教程](http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html),[另一个Ant教程](http://i-proving.ca/space/技术/ Ant +教程)... – ircmaxell 2010-08-25 16:12:35

+0

@ircmaxell我在说'exec'命令和'checkreturn'。我对哈德森很熟悉。 – myusuf3 2010-08-25 16:22:36

2

如果您正在运行shell脚本,则可以通过退出零错误代码。

run_my_command foo 
if [ $? -ne 0 ]; then 
    echo "run_my_command failed" 
    exit 1 
fi 

我同意@ircmaxell有更好的方法来编写构建脚本,而不是直接在Hudson编写shell脚本。

+0

很好的答案..正是我想要的。谢谢 – Dexter 2012-09-19 19:53:12

0

是的,你可以用M2额外的步骤,以发行外壳插件哈德森命令前/你的Maven构建,有条件的控制之后(例如,如果此命令失败,请运行Maven,中止编译)

我们使用它来在运行构建之前清理一些内容。