持续集成的概念刚刚融入我的团队。
假设我们有一个名为Dev的集成分支。
从中派生出 3 个分支,每个特定当前项目一个分支:
- 项目A
- 项目B
- 项目C
首先,Teamcity 配置在专用服务器上,其目标是:
从每个分支(包括 Dev)的版本化源中编译和启动单元和集成测试
然后,当然,每个项目分支(A、B 和 C)都必须在克隆的生产环境中进行测试,以便执行 UAT。
但我想知道我们应该部署在什么频率上?每次源代码更改?
我们应该在将每个项目合并到它之后(对应于下一个生产版本中的实际情况)只部署包含 3 个项目的混合的 Dev,还是独立部署 3 个项目?
如果部署了 Dev,则不得考虑 Dev 未来可能发生的变化。实际上,可能会有一个名为Project D的新项目开始,它不能成为下一个版本的一部分。所以采用 Dev for integration (UAT) 是有风险的,因为部署者可能会非自愿地集成 Project D 的内容,因此环境不会揭示下一个版本的现实。
其他解决方案:我们不是拿 Dev 而是独立的 3 个项目,所以必须有 3 个并行的克隆生产环境吗?
如果是,则 UAT 不可靠,因为集成环境的行为可能会经常变化......
UAT 持续部署的概念对我来说并不清楚......