Continuous integration 如何在提交之前自动化或促进多平台构建/测试?

Continuous integration 如何在提交之前自动化或促进多平台构建/测试?,continuous-integration,build-automation,cruisecontrol,pre-commit,Continuous Integration,Build Automation,Cruisecontrol,Pre Commit,我们的软件构建在linux和windows平台上。根据开发人员的偏好,在任一平台上开发和测试贡献,然后提交到我们的subversion存储库。结果证明,该贡献不在其他平台上构建,必须进行修复。另一个平台上的修复可能会再次破坏原始平台上的构建,以此类推 我更希望在提交之前,在其他平台上构建一个贡献(并进行回归测试)。我们有一个连续构建服务器(CruiseControl),但该服务器是从存储库构建的。我正在寻找一种解决方案,其中连续构建服务器在另一个平台上构建,作为预提交检查,然后在构建和测试成功时

我们的软件构建在linux和windows平台上。根据开发人员的偏好,在任一平台上开发和测试贡献,然后提交到我们的subversion存储库。结果证明,该贡献不在其他平台上构建,必须进行修复。另一个平台上的修复可能会再次破坏原始平台上的构建,以此类推

我更希望在提交之前,在其他平台上构建一个贡献(并进行回归测试)。我们有一个连续构建服务器(CruiseControl),但该服务器是从存储库构建的。我正在寻找一种解决方案,其中连续构建服务器在另一个平台上构建,作为预提交检查,然后在构建和测试成功时提交内容


有什么建议吗

可能更容易有两个分支,一个是人们签入的分支,另一个是他们在通过持续集成后将更改合并到其中的分支。

Teamcity处理预测试的提交,您可以使用4.0()中的新构建链接功能做些事情。代理是跨平台的,可以配置为仅运行构建的特定部分,因此可以配置为仅运行测试的子集


请注意,我实际上并没有这样做:)

我们使用了一个定制的构建和测试平台,可以远程部署到多个操作系统(以及多个操作系统上的多个数据库产品)。这是作为夜间构建完成的,有一条规则,即第二天早上修复bug

没有完全连续的,但是在预提交钩子上可能有很多工作要做。尤其是当源代码管理存储库在预提交钩子执行期间锁定受影响的文件时


我认为白天进行的每次提交的持续集成测试与夜间进行的系统集成测试之间存在差异。

Matheiu Godlewski在会议上提出了一个很好的建议


如果你将他的建议与元素结合起来,我认为你应该被设置。

道格拉斯·利德提出了一个“集成”分支——它的好处是可以实现自动化。如果测试通过-合并到“主干”


一些版本控制系统(如bzr/hg/git)比其他系统更容易实现这一点,但在大多数情况下都是可能的。

+1用于TeamCity的“预测试提交”。他们还拥有一个名为“个人构建”的功能,类似于最后没有提交的预测试提交。Michael-“个人构建”我认为是来自Zutubi Pulse的一个功能。我可以确认BuildForge也有这个功能。