使用以下 Git 工作流程,适用于任何版本,
对于持续交付,我的理解是,需要创建两条Jenkins流水线,如下图:
1) 构建在每个 Feature 分支(绿色) merge 到 Develop 分支(紫色)时触发的管道。管道将在 Nexus 存储库中推送 product-x.y-snapshot.jar
。
这个 jar 的目的是用于 QA 测试
2) 在每个新的 Release 分支 merge 到 Master 分支时触发的发布管道。管道将在 Nexus 存储库中推送 product-x.y.jar
。这个 jar 直接投入生产。
这两个管道都有针对每个功能的自动测试。 在两个管道中运行相同数量的自动测试
1) 两条管道是否足以稳定发布? 产品-x.y.jar
作为该版本的一部分添加了新功能
2) 如果是,如何为构建和发布管道维护二进制工件?使用 Nexus...请提供任何引用
最佳答案
1) 这个问题没有一个正确答案 - 在大多数情况下,两个管道(一个用于 feature 分支,另一个用于 master 分支)足以创建稳定的发布,但通常团队使用三个暂存环境(例如,请参阅 this 文章中的详细信息):
- 开发环境:用于开发(或功能)分支和运行自动化测试;
- QA环境:为 QA 团队测试提供更稳定的代码版本;
- Prod 环境:用于构建当前位于 master 分支上的生产就绪代码。
在这种情况下,您可以为每个暂存环境设置三个管道(或者一个带有用于选择和构建每种类型环境的参数的管道)。网上有很多Jenkins持续交付配置的例子。
2) 如果我没理解错的话,为了维护工件,您可以使用 Nexus Platform Plugin (参见 this 示例)或 Nexus Artifact Uploader将特定工件从 Jenkins 发布到 Nexus。
关于git - Jenkins - 一个版本有多少 CI/CD 管道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54174394/