我们的软件基于Linux和Windows平台构建。根据开发人员的偏好,在任一平台上开发和测试贡献,然后将其提交到我们的subversion存储库。然后证明该贡献不是建立在另一个平台上,并且必须进行修复。另一个平台上的修复可能会再次破坏原始平台上的构建,依此类推。
我宁愿在提交之前看到在另一个平台上构建(并进行回归测试)贡献。我们有一个连续构建服务器(CruiseControl),但该服务器是从存储库构建的。我正在寻找一个解决方案,其中连续构建服务器构建在另一个平台上作为预提交检查,然后在构建和测试成功时提交内容。
有什么建议吗?
答案 0 :(得分:6)
Teamcity处理预先测试的提交,您可以使用4.0中的新构建链功能(http://www.jetbrains.com/teamcity/features/newfeatures.html)执行某些操作。代理是跨平台的,可以配置为仅运行构建的特定位,因此可能配置为仅运行测试的子集。
请注意,我实际上并没有这样做:)
答案 1 :(得分:1)
拥有两个分支可能更容易,一个是人们签到的分支,另一个分支是在他们通过持续集成后合并他们的变化。
答案 2 :(得分:0)
我们使用了可以远程部署到多个操作系统的自定义构建和测试平台(以及多个操作系统上的多个数据库产品)。这是作为一个夜间构建完成的,规则是你第二天早上修复你的bug。
当时没有完全连续,但在预提交钩子上可能需要做很多工作。特别是如果源控制存储库在预提交挂钩执行期间锁定受影响的文件。
我认为在白天运行的持续集成测试,每次提交和每晚运行的系统集成测试之间存在差异。
答案 3 :(得分:0)
Matheiu Godlewski在CruiseControl wiki
提出了一个很好的建议如果你将他的建议与veto元素结合起来,我认为你应该被设置。
答案 4 :(得分:0)
某些版本控制系统(例如bzr / hg / git)比其他版本控制系统更容易,但大多数情况下都可以。