在下游项目之前触发上游项目构建

时间:2009-12-04 18:21:40

标签: build continuous-integration triggers hudson

我有以下项目布局:

  • WAR项目A.
    • 上游项目
      • 依赖B
      • 依赖关系C
      • 依赖D

我正在设置A以便每次我想触发构建时,它将首先构建B,C和D.如果B,C或D的构建失败,那么A的构建也会失败

这似乎是一个常见的构建案例,但我不确定如何实现它。有以下选项,但它们似乎没有正确的关系:

  • 构建触发器 - 构建其他项目后构建
    • 将在一些上游项目之后构建当前项目,但是我需要从这个项目中控制构建,因为我正在进行WAR部署。我只想先建立依赖关系。
  • 构建后操作 - 构建其他项目
    • 将在此之后构建项目,但这是我想要做的事情。

Hudson(或通过插件)中的构建配置对我有用吗?

4 个答案:

答案 0 :(得分:5)

最近出现在Hudson邮件列表中。在Hudson中没有直接支持这种类型的构建配置。

看到这个帖子: http://jenkins.361315.n4.nabble.com/On-demand-build-dependency-handling-simple-2-job-build-td624395.html

您可以使用Join插件创建“构建+部署”作业。它将B,C和D作为下游项目,然后'A'将成为连接目标。

因此B C和D需要成功完成。如果是这样,那么A的简单“部署”工作将被启动。如果有任何错误,A将无法启动。这实际上和你要求的一样。

您可以在此处阅读有关加入插件的信息: http://wiki.hudson-ci.org/display/HUDSON/Join+Plugin

答案 1 :(得分:1)

看一下Apache Ivy项目(http://ant.apache.org/ivy/)。它非常好地处理项目依赖性,它有一个Hudson插件。从您描述问题的方式来看,我认为这个解决方案对您有用。

答案 2 :(得分:1)

我认为Join Plugin是您正在寻找的。所以你设置了触发B,C,D的A-Trigger工作,并等待所有工作完成并且A被触发。

答案 3 :(得分:0)

我有一个类似的项目布局,经过一些研究后发现以下answeranswer How do I trigger another job from hudson as a pre-build step? 一个可能在未来工作的插件是PreBuild Plugin