【问题标题】:How to automate the master merge after releases for Continuous Delivery如何在发布后自动化主合并以实现持续交付
【发布时间】:2017-12-14 16:24:46
【问题描述】:

主合并自动化的最佳实践是什么? 现在我们正在手动进行。我们应该使用合并任务从 CD(vsts) 管道中执行此操作吗?如果合并失败会怎样?

这是我们在市场中找到的合并任务。没有按预期工作。

https://marketplace.visualstudio.com/items?itemName=dtzar.git-merge

【问题讨论】:

  • 你的意思是发布分支上的CD和发布分支上部署后自动合并发布分支到主分支吗?但是您提到的分支模型实际上是将master分支视为主/生产分支,并通过标记(例如1.0.0和1.0.1等)记录每个发布版本。并且发布分支es 是实际上分别为每个发布做准备。所以你应该在 master 分支上 CD。
  • 同意 master 应该是生产,但询问如何从管道合并到 master。为清楚起见更新了问题
  • 我添加了一个自动合并master分支的答案,你可以试试。

标签: merge git-flow azure-pipelines-release-pipeline


【解决方案1】:

您可以通过 Powershell 脚本自动将其他分支合并到master 分支中。详情如下: 在发布定义的末尾添加一个 Powershell 任务,其中包含以下脚本:

git clone https://<alternate username>:<Alternate password>@account.visualstudio.com/project/_git/reponame repo
cd repo
git checkout $(BUILD.SOURCEBRANCHNAME)
git checkout master
git merge $(BUILD.SOURCEBRANCHNAME) -X ours -m 'merge $(BUILD.SOURCEBRANCHNAME) into master'
git push origin master

注意:对于工作流程,主要是合并分支到master没有冲突。如果有冲突,git merge 的-X ours 选项使用master 版本。您也可以使用-X theris 来使冲突使用源分支的版本。

【讨论】:

  • 可以通过 PowerShell 任务自动合并 master 分支吗?
猜你喜欢
  • 1970-01-01
  • 2016-09-26
  • 2022-10-14
  • 2017-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-11
  • 2012-10-01
相关资源
最近更新 更多