4

我有一个多平台应用程序集,一些应用程序在Linux上运行,一些在Windows上运行。我要完成下面的生成:在具有依赖性的Linux和Windows平台上同步CruiseControl项目

服务器大号CruiseControl的运行与项目A,一个仅支持Linux的服务器应用程序。这应该先建立。

如果项目A会成功,它需要以某种方式揭开序幕......

项目B,在服务器W运行仅Windows客户端应用程序,与CruiseControl.NET项目B包括有一些单元测试在服务器数据库中生成一些数据的最终效果。项目B大约需要10分钟来构建和执行测试。

如果项目B成功建立,服务器L,已耐心等待,揭开序幕项目C,其中包含一些测试用例来寻找和验证项目B.

任何想法中生成的数据库条目我如何才能完成这件事?我发现this link,但它似乎旨在在没有依赖关系的多平台上构建相同的代码库。

当然,一定有人在某些时候这样做呢?

回答

2

拥有项目构建非常简单。在发布阶段将文件写入网络驱动器。

项目B可以使用文件系统源控制块来监视网络文件系统,并根据项目A的更改触发构建。完成时,它将另一个文件写入文件系统(不同的目录)。

项目C使用文件系统源代码控制观看从项目B.

所有非常简单的变化。

如果你没有一个共享文件系统,您还可以使用FTP,SCP,或http左右移动触发文件。

如果你喜欢,你可以使用Web接口,从项目A和项目B发布阶段称为触发构建。


WRT注释中的问题,你可以在项目B的信息没有(至少)两种不同的方式。

之一将是有根据的CC项目B是充当远程项目B在发布阶段,并在文件中远程项目B将写入文件的代理表明是否通过或失败。 proxy-B项目将监视该文件,并在其“构建”阶段期间读取文件并根据内容通过或失败。项目C现在只是使用CC的BuildStatus元素监视代理B.

另一种方式来解决这个问题将是与使用JavaSpaces的分配CC的DistributedBuilder下CC.net替换项目B建立远程代理:http://confluence.public.thoughtworks.org/display/CC/Using+distrib+from+the+CruiseControl+contrib

在分布式方法B项目仍然会在运行Windows机器,但DistributedBuilder将远程运行该脚本,然后将结果返回到CC服务器。

+0

有趣......但有没有办法沟通构建失败?如果项目B失败了,我也想回传失败。 – 2008-11-12 07:10:12

0

你是混合的CruiseControl和CruiseControl.Net?对于CruiseControl。纯网络设置,只需使用Project Trigger

相关问题