【发布时间】:2019-11-02 04:22:15
【问题描述】:
我很难理解提升构建(及其工件)的概念究竟是如何与 GitFlow 一起工作的。我正在使用 Git、Jenkins 和(作为新增功能的)Artifactory 制定持续集成/交付工作流程。这是我到目前为止所制定的:
- 来自
develop分支的构建工件将自动推送到dev存储库(如果单元测试等通过)并因此提升为dev状态。这些文物无法进一步推广。 - 来自
feature分支的工件根本不会被推送或提升。 - 来自
release分支的工件也只能升级为dev(或者我应该引入release存储库吗?) - 一旦
release合并到master,新的提交就会被标记,Jenkins 就会运行完整的 CI/CD 管道。在单元测试和指标(在所有分支上运行的构建阶段)之后,工件被推送到master存储库并提升到master。然后将工件用于部署到暂存环境,可以在其中进行最终测试(这些测试可以在完整的持续部署设置中自动化)。如果所有测试都成功,工件将被推送到prod存储库,部署到生产环境并提升为prod状态。如果生产前的任何阶段失败,则该标签属于一个从未投入生产的版本。
我的理解正确吗?我对主/发布合并感到很困惑。直觉上我会说,来自release 的二进制文件将接受最多的测试。但是,GitFlow 规定只有在 master 上的提交才会被标记(而且我不想标记技术上不会产生投入生产的二进制文件的提交)。如果在master 的提交构建过程中发现问题怎么办?拥有没有投入生产的标签是“错误的”吗?我是否必须还原或撤消标记甚至合并提交?
很高兴听到其他人对这个构建推广 + GitFlow 的方法。非常感谢任何帮助。
【问题讨论】:
标签: git jenkins continuous-integration artifactory devops