是否有用于针对不同操作系统检查开源应用程序的构建服务器场?
我有一个开源应用程序,并且可以在Windows,Linux和Macintosh上运行(它是C ++并使用gcc构建)。我仅在几种不同版本的Linux上对其进行了测试,因此我不知道它是否可以在所有不同的Linux版本上编译并运行。是否可以在哪里上传代码并在众多不同系统(如其他Linux风格以及Solaris,FreeBSD和其他操作系统)上进行测试?
最好的是,我可以让它直接连接到我的svn存储库并获取最新代码,然后通过电子邮件将生成的所有编译错误以及存在问题的操作系统发送给我。
我很高兴知道它可以编译,因为它是基于GUI的应用程序,因此我不希望它实际运行和测试。
解决方案
看一下OpenSuSE构建服务,它包括相当多的Linux发行版(不仅仅是SuSE / OpenSuSE)。
有几种选择,但似乎没有太多这样的免费服务,考虑到所需的工作量和资源,这不足为奇。 Sourceforge曾经像我们所描述的那样运行一个编译场,但它在一年前左右就关闭了。我们可能会研究以下内容。如果我们倾向于付费或者自己推出服务,那么其中一些链接可能会很有用。如果我们只是在寻找一个涵盖多个平台的免费开放源代码编译/构建服务器场,那么我们似乎很不走运。
OpenSuse构建服务
首先由Ted提及,目前仅在Linux上值得重复,但确实支持许多发行版。
GCC编译场
主要侧重于针对GCC的测试构建,但也托管了其他一些项目,例如coLinux,BTG BitTorrent客户端,ClamAV等。尽管我看不到编译场中有哪些操作系统(基于页面注释,至少包含Linux和Solaris),但我们可能会利用它。
BuildLocker
BuildLocker是针对Java和.NET项目的基于Web的持续集成解决方案。 BuildLocker是一个虚拟的专用构建机器,可帮助团队在开发周期的早期发现错误,从而节省时间和金钱。 BuildLocker在ProjectLocker源代码管理存储库中管理计划的源代码的自动生成。只需签入源代码,计划的构建就可以验证代码的完整性。 BuildLocker甚至可以运行自动测试,并且可以在测试失败时提醒我们。
巡航控制
CruiseControl是一个连续构建过程的框架。它包括但不限于电子邮件通知插件,Ant和各种源代码控制工具。提供了一个Web界面来查看当前和以前版本的详细信息。
有趣的是,根据播客,CruiseControl实际上也被StackOverflow的开发团队用于自动构建测试。
哈德森
Hudson监视重复作业的执行情况,例如构建软件项目或者cron运行的作业。
运行代码运行
在另一个链接的问题中提到,仅支持Ruby项目,并且当前处于私有beta中。但是,如果项目是在Ruby中,则值得关注RunCodeRun。
CI功能矩阵
有许多可用的持续集成系统。此页面试图对尽可能多的内容进行公正的比较。
从软件的角度来看,还有buildbot(sourceforge项目站点),可用于设置我们自己的构建/连续集成服务器。
它被建议并被认为用于gcc开发(如上面发布的gcc编译场wiki页面所述)。
如果我们打算使用开源产品进行商业化,则可以考虑使用我们的Parabuild。它允许我们在多个平台和机器上并行运行一组构建。仅当所有特定于平台的构建均成功时,构建才会成功。