我需要您对大型(1-2MLOC)软件开发项目的持续构建产品的建议。特征:
- ClearCase 修订控制
- 大约 80% C++;15% 爪哇;5% 脚本或低级
- 为 Green Hills Integrity OS 编译,也为一些窗口和 JVM 块编译
- 主要是嵌入式系统;还包括一些 UI 部分和一些开发支持(模拟工具、配置工具等...)
- 可交付成果的每个概念“版本”都包括许多板、UI 机器等的部署映像……(约 10 个单独的映像;5 个不同的操作系统)
- 需要维护/跟踪许多同步版本,特别是为各种不同的板支持包构建
- 构建周期时间是该项目的一个主要问题,需要支持任何有助于解决此问题的功能(我猜主要需要管理大量构建机器......)
- 在安全的环境中运行(这是一个政府计划)(编辑添加:这是一个机密计划;外包构建基础设施是不可能的。)
对您可能提供的任何最佳实践或外围指导感兴趣。构建自动化问题是该程序中似乎缺少的几个重叠的最佳实践之一,但请尽量将您的答案集中在构建基础设施部分和直接相关的观察上。
成本不是驱动因素。可扩展性和易于改造到现有基础设施是关键。
(编辑以解决@Dan 的评论。;-)