我们的自动构建和测试正在占用越来越多的资源,特别是因为我们支持许多平台并在调试和优化中进行测试。因此,我正在寻找一些工具支持,这将允许更加增量的“管道”方法,以便我们可以更快地获得反馈和结果。一些理想的特征包括:
支持增量反馈,以便我们可以看到构建,单元测试,快速测试,长时间运行测试,静态分析等结果。
任务依赖:如果构建失败,则不应运行测试,但其他任务可能(如lint或其他)。
支持多种构建和测试工具(包括自定义)。
支持多种平台(Linux,Mac,可能是Windows)。
一些归档功能会非常棒,比如日志文件,构建/测试输出等等。从这个方面来说,这可能会变得难以管理,因此理想情况下,一些数据会在X天或Y多次构建后被清除。
非常感谢任何指示或个人建议。
答案 0 :(得分:3)
您可能需要查看Jenkins (formerly Hudson)。
答案 1 :(得分:2)
我一直在使用Anthill,但你必须付钱。
答案 2 :(得分:2)
Automated Build Studio已经接近了,但由于它仅限于Windows,它可能不适合您。
答案 3 :(得分:1)
我认为buildbot会做你想做的一切:
答案 4 :(得分:1)
必须就思想工作选项达成一致 - 去“敏捷发布管理” http://www.thoughtworks-studios.com/go-agile-release-management
社区版(免费)和企业版中的一些很好的功能,例如环境配置和特定工件(版本)到特定环境的部署。
答案 5 :(得分:0)
我的JetBrains TeamCity设置近似于您的需要。
在一个项目中,我设置了多个不同的构建配置。
每个构建配置之间的区别在于构建目标的选择(我使用NAnt)和触发。
我有一个“XYZ集成”配置,它执行调试构建并运行一些NUnit测试。这在签入完成后60秒触发,向开发团队提供快速反馈。
我还有一个“XYZ Daily”配置,它可以进行调试构建,运行NUnit测试,然后构建一些MSI并编译一些文档。正如你可能猜到的,每天运行一次。
您也可以这样做,但配置范围更广。
答案 6 :(得分:0)
我们使用Hericus Software's Zed Builds and Bugs Management,它可以处理您所描述的内容。我们的主要构建包括超过61个独立的步骤,涵盖Java,C ++,C#的编译以及5种不同OS平台的安装构建。有些步骤并行执行,有些步骤可能会失败而不会导致整个构建失败,并且许多步骤在不同的机器上远程执行。
1)是的。在为构建执行步骤时,您可以立即看到步骤的结果,而无需等待整个构建完成。
2)是的。您可以定义步骤失败是否导致完整的构建失败。创建由“父”或“主”构建调用的“子”或“子”构建的能力允许极大的灵活性。
3)是的。我们正在使用makefile,ant,C#解决方案和一些自定义脚本,它们都能很好地集成。
4)是的。构建服务器是java,只需要1.6 JDK,因此任何平台都可以用于主构建服务器或卫星构建服务器。
5)是的。复制到构建“status”目录中的所有内容都将保存。这包括命令标准输出/错误,可以从网站上查看。您可以根据构建数量选择“dev”构建历史记录的数量。构建也可以升级为“QA”,在这种情况下,在从“QA”中删除之前不会删除它。从质量检查中,您可以将构建升级为“生产”,这将保留所有构建工件,直到您决定删除它们。
答案 7 :(得分:0)
请试试Thoughtworks的Cruise