持续集成 - 构建单独的项目还是构建在一个项目中?
continuous integration - build separated projects or build all in one?
我正在开发一个将包含这些应用程序的项目:
- backend api (nodejs)
- ios app (objective-c)
- android app (java)
- web site (php)
- admin site (php)
- client site (php)
我的问题是关于版本控制和管理所有这些项目。
我在考虑两个选项:
1) 分别构建每个应用程序
- 更难测试应用集成
- 如果我在一个应用程序中更改某些内容,我需要小心所有其他应用程序
- 我需要将所有应用更新日志合并到一个文档中
2) 将所有应用程序放入一个构建中
- 生成单个变更日志似乎不错
- 也许会为应用程序集成编写测试?
--
那么,对于这种情况,有哪些好的做法?也许选项 2?
我投票给选项 2。使用 整体式 方法 'carry' 在所有阶段进行开发要容易得多:
- 更简单的集成——所有部分都已经集成,每个人都在同一页面上处理整个项目的任何部分,而不是在他们自己的沙箱中(true 持续集成,如果你想要的)——如果你还计划使用敏捷方法,这非常重要
- 集成测试不再需要单独activity,你可以做到
常规 CI 过程的一部分,因为您可以一起测试所有部件(可能使用单个组合测试台而不是每个部件的专用测试台 - 降低成本)
- 更简单 coherent/consistent 源代码控制(即使这些部分有自己的
回购协议,它们可以像我一样以整体式的方式一起管理
在这个问答中建议:
- 整体构建速度可能更快(不同的构建可以使用空闲周期
在其他构建中,当它们是
独立 - 他们可能会更好 "packed",导致
减少构建资源的成本)
我绝对不会选择选项 2。持续集成是 Grady Booch 在 90 年代早期提出的。今天,他们想使用持续交付这个术语。我说我们应该一直使用持续改进。无论如何,您希望能够交付、部署、投入生产应用程序、项目、"a" 可交付成果。您绝对不想混合应用程序。您可能需要将一个应用程序部署到生产环境,而另一个应用程序出现问题。或者您只是对单个应用程序进行了非常快速的修复,并且希望通过整个过程直到今天交付。由于这些原因,我不会选择选项 2。
我正在开发一个将包含这些应用程序的项目:
- backend api (nodejs)
- ios app (objective-c)
- android app (java)
- web site (php)
- admin site (php)
- client site (php)
我的问题是关于版本控制和管理所有这些项目。
我在考虑两个选项:
1) 分别构建每个应用程序
- 更难测试应用集成
- 如果我在一个应用程序中更改某些内容,我需要小心所有其他应用程序
- 我需要将所有应用更新日志合并到一个文档中
2) 将所有应用程序放入一个构建中
- 生成单个变更日志似乎不错
- 也许会为应用程序集成编写测试?
--
那么,对于这种情况,有哪些好的做法?也许选项 2?
我投票给选项 2。使用 整体式 方法 'carry' 在所有阶段进行开发要容易得多:
- 更简单的集成——所有部分都已经集成,每个人都在同一页面上处理整个项目的任何部分,而不是在他们自己的沙箱中(true 持续集成,如果你想要的)——如果你还计划使用敏捷方法,这非常重要
- 集成测试不再需要单独activity,你可以做到 常规 CI 过程的一部分,因为您可以一起测试所有部件(可能使用单个组合测试台而不是每个部件的专用测试台 - 降低成本)
- 更简单 coherent/consistent 源代码控制(即使这些部分有自己的
回购协议,它们可以像我一样以整体式的方式一起管理
在这个问答中建议:
- 整体构建速度可能更快(不同的构建可以使用空闲周期 在其他构建中,当它们是 独立 - 他们可能会更好 "packed",导致 减少构建资源的成本)
我绝对不会选择选项 2。持续集成是 Grady Booch 在 90 年代早期提出的。今天,他们想使用持续交付这个术语。我说我们应该一直使用持续改进。无论如何,您希望能够交付、部署、投入生产应用程序、项目、"a" 可交付成果。您绝对不想混合应用程序。您可能需要将一个应用程序部署到生产环境,而另一个应用程序出现问题。或者您只是对单个应用程序进行了非常快速的修复,并且希望通过整个过程直到今天交付。由于这些原因,我不会选择选项 2。