【问题标题】:How many pipelines for Trunk Based Development?基于主干的开发有多少管道?
【发布时间】:2019-06-13 03:42:03
【问题描述】:

对于基于 Gitflow 的工作流,建议使用三个管道(Dev、QA 和 prod)。

我的理解是,如果一个团队中有 2-3 名开发人员,并且具有在预定义时间(24 小时)内提交更改的短期功能分支,那么Trunk based development 是首选,如下所示。团队中的开发人员每天多次将更改提交到主干(主)。


使用待定的优势:

对于 TBD,有一个 ma​​ster 分支和多个来自 master 的 Release 分支。

在哪里

使用 Gitflow,从长期存在的 Develop 分支有多个 Release 分支。


1) 使用 TBD,使用 Jenkins 需要多少个管道?

2) 每个管道的输入/输出是什么?

【问题讨论】:

  • 我不明白你的第二个问题,请你详细说明一下吗?
  • @DanCornilescu 在 gitflow 方法中,开发管道在提交时被触发(输入)并提供快照二进制工件(输出)。 QA 管道轮询 SCM 是否有任何新的标记提交,然后选择相应的快照二进制工件进行测试...... Prod 管道在主分支上的提交时触发并交付一个发布二进制工件。

标签: git jenkins continuous-integration jenkins-pipeline tbd


【解决方案1】:

我个人更喜欢基于 Trunk 的开发,无论团队规模如何 :)

发布分支的数量实际上并不取决于所使用的方法(待定或其他),而是取决于业务原因:

  • 发布分支用于真正需要不同的、或多或少冻结版本的产品,例如 OS-es 或嵌入式系统。此类需求的典型原因包括:
    • 验证所有发布质量标准需要相当长的时间,稳定软件需要将发布与持续开发隔离到下一个发布,以满足这些标准
    • 需要同时维护多个版本 - 版本分支成为交付任何版本热修复的工具
  • 如果对单独的发布分支没有硬性要求,则发布只能成为主要开发和集成分支上的标签/标签 - 这就是真正的 CD 归结为。每次提交都会执行 CI/CD 管道,只要它通过所有发布标准,就会发布。

每个发布分支都需要一个 Jenkins 管道,主开发分支需要一个 Jenkins 管道(如果您不直接从它发布)。

【讨论】:

  • 如果所有团队都从主干分支用于多个功能,那么这是否易于管理?
  • 如果特性分支是短暂的,它比分支意大利面条更容易管理。尤其是在大型项目中。
  • 我认为你说得有道理。根据您的经验,您认为功能分支在纯开发项目(基于敏捷)中可以很小吗?比如说一个 Web 开发项目......有没有办法知道两个开发人员正在处理同一个文件但不同的分支?
  • 我们可以在聊天室里快速讨论一下吗?
  • 在我的经验中,功能通常很大,功能分支并不是短命的。所以我们通过抽象切换到特性标志和分支,并完全放弃这些分支,每个人都在主分支上工作。但是我们使用了一个封闭的提交 CI 系统,因为常规系统无法跟上 - 庞大的团队。
猜你喜欢
  • 2022-01-25
  • 2017-01-26
  • 2019-05-31
  • 1970-01-01
  • 2020-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-02
相关资源
最近更新 更多