Jenkins - 一个版本有多少 CI/CD 管道?

Jenkins - How many CI/CD pipelines for a release?

使用以下 Git 工作流程,对于任何版本,

对于持续交付,我的理解是,需要创建两条Jenkins流水线,如下图:

1) 构建在每个 Feature 分支(绿色)合并到 Develop 分支(紫色)时触发的管道。管道将在 Nexus 仓库中推送 product-x.y-snapshot.jar。 这个 jar 的用途是用于 QA 测试

2) 在每个新 Release 分支合并到 Master 分支时触发的发布管道。管道将在 Nexus 仓库中推送 product-x.y.jar。这个jar直接投入生产。

两条管道都对每个功能进行自动测试。 两个管道中的自动测试数量相同 运行


1) 两条管道是否足以稳定发布? product-x.y.jar 作为该版本的一部分添加了新功能

2) 如果是,如何为构建和发布管道维护二进制工件?使用 Nexus...请提供任何参考资料

1) 这个问题没有一个正确答案 - 在大多数情况下有两个管道(一个用于 feature 分支,另一个用于 master 分支)足以创建稳定版本,但通常团队使用三个暂存环境(例如,请参阅 this 文章中的详细信息):

  • Dev 环境:用于 develop(或 feature)分支和 运行 自动化测试;
  • QA环境:为QA团队测试提供更稳定的代码版本;
  • Prod 环境:用于构建当前在 master 分支上的生产就绪代码。

在这种情况下,您可以为每个暂存环境设置三个管道(或者一个带有用于选择和构建每种环境的参数的管道)。网上有很多Jenkins持续交付配置的例子。

2) 如果我理解正确,为了维护工件,您可以使用 Nexus Platform Plugin (see this example) or Nexus Artifact Uploader 将特定工件从 Jenkins 发布到 Nexus。