我有一个包含多个文件夹的存储库和 Azure DevOps 中每个文件夹的发布管道(使用带有路径过滤器的 CI 触发器),以便可以独立于其他文件夹中的代码成熟度部署给定文件夹中的代码。>
示例:
repo-root:
- folder1
- folder2
Git 分支策略遵循 Gitflow 方法:例如,当 folder1
中的代码应该投入生产时,会创建新的发布分支(脱离开发分支)并且管道将触发将 folder1
部署到 QA和 Prod 环境,随后将 release 分支合并到 master 中(如果有任何错误修复到 release 分支,则返回到 develop)。
我对这种方法有一个担忧:当从开发分支创建新的发布分支时,发布分支将不仅包含来自 folder1
的要部署的代码,还包含来自 folder2
的代码。 folder2
中的代码可能处于非生产就绪状态。虽然 folder2
不会投入生产(因为管道只部署 folder1
),但它会在将 release 合并到 master 时进入 master 分支。直觉上主分支应该只包含生产代码,这就是为什么我对这种方法有些怀疑。
在 Gitflow 上下文中分别部署存储库的不同部分(文件夹)的最佳实践是什么?
非常感谢这里的一些指导,以避免走错方向。
更新:这是一个 monorepo,其中包含团队正在处理的多个项目(每个文件夹一个项目)。原则上,这些项目可以拆分为几个独立的存储库,但是项目管理员希望限制存储库的数量,因此我需要另一个解决方案。