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

标签 git jenkins continuous-integration continuous-delivery

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

enter image description here

对于持续交付,我的理解是,需要创建两条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 分支,另一个用于 ma​​ster 分支)足以创建稳定的发布,但通常团队使用三个暂存环境(例如,请参阅 this 文章中的详细信息):

  • 开发环境:用于开发(或功能)分支和运行自动化测试;
  • QA环境:为 QA 团队测试提供更稳定的代码版本;
  • Prod 环境:用于构建当前位于 ma​​ster 分支上的生产就绪代码。

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

2) 如果我没理解错的话,为了维护工件,您可以使用 Nexus Platform Plugin (参见 this 示例)或 Nexus Artifact Uploader将特定工件从 Jenkins 发布到 Nexus。

关于git - Jenkins - 一个版本有多少 CI/CD 管道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54174394/

相关文章:

android - 将 Linux 更改 merge 到 Android 内核项目中

grails - Grails中的自动构建 war 项目

continuous-integration - 我可以为 Jenkins 随机设置 SCM 轮询间隔吗

git - Git 上的版本

git - 无法推送到 Gitlab,不允许将代码推送到该项目

git - 致力于非主分支和贡献日历

jenkins - Jenkins 管道中基于时间的步骤的默认单位

git - Jenkins通过Git插件 pull 子模块时报告权限失败(远程Repo Bitbucket)

nhibernate - 如何从 NHibernate 映射文件生成 "migration"DDL?

java - Bamboo 在分支上构建计划,但不在开发上(又名条件构建)