2009-10-02 79 views
3

如何设置持续集成服务器来构建多个相关项目?持续集成工具中的多个相关项目

我想为托管在mercurial存储库上的项目设置持续集成过程。但是,该项目对另一个托管在另一个mercurial存储库(均在Google上托管)的项目具有编译时间依赖性。

使用Hudson,我如何为两个项目设置CI作业(同时将一个二进制位置传递给另一个项目构建脚本)?其他工具是否更好地处理它?

这两个项目都是带有Ant构建脚本的Java项目。

回答

4

Hudson应该能够处理这个问题,因为Hudson支持两个相关的构建(换句话说,一个构建可以通过完成另一个构建)和Mercurial

this thread,有可能:

配置哈德森发布构建工件,然后HTTP获得这些文物的相关的构建。你希望你的依赖版本的位置独立于第一个版本的位置。

该信息的作者给出了一些Hudson Unleashed...更多的细节,这可能也有帮助。

0

在巡航控制中你有整合队列。您只需按照所需的顺序将两个项目放在同一个队列中,然后它们将依次构建。

5

我建议寻找Maven(或者如果你不想移动到Maven,Ivy,它与Ant集成) - 它不是真正的CI服务器的工作来处理工件依赖关系,就像你正在谈论的那样。这就是说,如果你在Hudson服务器上有两个作业,比如说job_a和job_b,你可以配置job_a来存档它的工件(包括job_b中需要的jar文件),然后启动job_b当它完成时。然后,在job_b中,可以使用ant的get任务从http://hudsonserver/job/job_a/lastStableBuild/artifact/jarfile.jar(etc)下载jar文件。因为它是job_a的最后一个稳定版本的符号链接,因此您不必担心job_b正在运行,也无需查找所需的jar文件。