如何通过持续部署触发发布管道?

How do I trigger release pipeline with continuous deployment?

标题不是最好的,我同意,请阅读更多细节以理解我的意思...

我有一个 project/repository 具有以下属性:

虽然这在一般情况下工作得很好,但我的问题是通常回购是不变的并且没有收到真正的新提交,但是在一些活跃的日子里我可能有 2-3-4-10 个新的拉取请求要合并.

使用当前方法,10 个合并的拉取请求将导致 10 个版本和 10 个版本增加。但我更愿意合并所有10个然后有一个版本和一个版本增加。

任何建议,我怎样才能实现,state-of-the-art 这里的建议是什么?

我的一个想法是有一些 pre-releasedevelop 分支,在那里我可以首先合并 PR,只有在发布时才合并 developmaster.但它看起来有点麻烦,并没有真正让贡献者的生活更轻松(他们需要以开发为目标,然后我需要创建从开发到掌握的 PR 等...)

更新:

有多种方法可以实现您的愿望。

您自己提到的一个想法:

One of my thoughts was to have some pre-release or develop branch where I can merge the PRs first and only when it's time to release, merge develop to master.

这是迄今为止最省力的方法。 其他一切都需要您更改管道。 如果您同意,根据您当前的结构,这里有一些不难实现的想法:

  • 将管道更改为不在 master 分支中的每个更改上发布,而是在 release 分支中的每个更改上发布。到那时,所有开发人员仍然能够以 master 为目标,然后您可以压缩所有提交并将它们引入 release。这种方法很简单,但根据项目的不同,可能会导致 and/or 与 git 结构混淆的问题。
  • 将管道更改为不在 master 分支中的每个更改上发布,而是在推送的每个新标签上发布。通过这种方式,您可以在 master 分支中收集所有提交,一旦您决定它已准备好发布,只需手动推送一个 git 标签。如果您想更进一步,请将管道配置为自动创建一个 git 标记,仅当您(或其他受信任的维护者)创建了一个包含 version bump to vX.Y.Z 之类的 signed commit message 时。这种方法是一种更现代的方法,提供了更多的灵活性,但与以前的方法相比,需要对管道进行更多更改(请记住,更改管道是一次性的工作)。