服务器L使用Project A(仅限linux的服务器应用程序)运行CruiseControl.这应该先建立.
如果项目A成功建立,它需要以某种方式启动…
项目B是在服务器W上运行的仅windows客户端应用程序,使用CruiseControl.NET项目B包括一些单元测试,这些测试最终会在服务器数据库中生成一些数据.项目B大约需要10分钟来构建和执行测试.
如果项目B成功构建,服务器L一直在耐心等待,启动项目C,其中包含一些测试用例,用于查找和验证项目B生成的数据库条目.
关于如何完成这项工作的任何想法?我找到了this link,但它似乎旨在在没有依赖关系的多个平台上构建相同的代码库.
当然,有人必须在某个时候做到这一点吗?
解决方法 拥有Project A构建是直截了当的.在发布阶段,将文件写入网络驱动器.项目B可以使用文件系统源控制块来监视网络文件系统,并根据项目A的更改触发构建.完成后,它会将另一个文件写入文件系统(不同的目录).
项目C使用文件系统源代码控制来监视项目B的更改.
一切都很简单.
如果您没有共享文件系统,还可以使用ftp,scp或http来移动触发器文件.
如果您愿意,可以使用从项目A和项目B发布阶段调用的Web界面触发构建.
通过评论中的问题,您可以获得关于项目B的信息(至少)两种不同的方式.
一种是将CC下的项目B作为远程项目B的代理.远程项目B将在发布阶段写入文件,并在文件中指示它是通过还是失败. proxy-B项目将监视该文件,并在其“构建”阶段读取文件并根据内容传递或失败. Project C现在只使用CC的BuildStatus元素监视proxy-B.
解决这个问题的另一种方法是用CC的distributedBuilder替换CC.net下的Project B,它使用JavaSpaces将构建分发给远程代理:http://confluence.public.thoughtworks.org/display/CC/Using+distrib+from+the+CruiseControl+contrib
在分布式方法中,项目B仍将在windows机器上运行,但distributedBuilder将远程运行脚本,然后将结果返回到CC服务器.
总结以上是内存溢出为你收集整理的持续集成 – 在具有依赖性的Linux和Windows平台上同步CruiseControl项目全部内容,希望文章能够帮你解决持续集成 – 在具有依赖性的Linux和Windows平台上同步CruiseControl项目所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)