Azure devops 针对开发、发布和热修复分支的Azure DevOps分支/管道设置
我在为开发和发布工作设置项目时遇到困难。我已经阅读了很多文章,但是对于如何为不同的分支设置我的开发和发布管道,我无法得出一个明确的结论。在这方面我需要帮助 例如,假设我有一个Dev分支,在/azure-pipelines.yml中有一个管道DevPipeline。 此管道具有如下CI触发器:Azure devops 针对开发、发布和热修复分支的Azure DevOps分支/管道设置,azure-devops,Azure Devops,我在为开发和发布工作设置项目时遇到困难。我已经阅读了很多文章,但是对于如何为不同的分支设置我的开发和发布管道,我无法得出一个明确的结论。在这方面我需要帮助 例如,假设我有一个Dev分支,在/azure-pipelines.yml中有一个管道DevPipeline。 此管道具有如下CI触发器: trigger: Dev features/* 现在,当我创建一个分支版本/R1.0时,我到底需要做什么 我是否要创建一个新的管道,比如Release-R1.0。此管道的.yml应位于何处 它应该覆盖/
trigger:
Dev
features/*
Dev
分支上的管道具有相同的构建。如果是,您只需在azure pipelines.yml
中添加一个触发器Release/R1.0
:
trigger:
Dev
features/*
Release/R1.0
如果它们没有相同的管道,或者您不想对分支使用相同的管道Release/R1.0
,则需要创建一个新管道,例如Release-R1.0
。和此管道的.yml
应设置发布
文件夹下R1.0
分支中的yaml
文件。查看一些详细信息
它应该覆盖/azure-pipelines.yml还是我应该创建
/释放-R1.0.yml
由于它们具有不同的触发器或不同的构建任务,因此不应覆盖/azure pipelines.yml
,您需要创建一个新的/Release-R1.0.yml
如果开发人员想为R1.0开发修复程序/热修复程序,他们应该这样做吗
在修补程序/R1.0分支下?在这种情况下,我将不得不调整我的
在R1.0 yaml中相应触发
如果我理解你的意思是正确的,如果你想为R1.0
开发一个热修复程序,最好基于R1.0
创建一个分支Release/hotfix-R1.0
,在R1.0 yaml中,你可以设置触发器:
trigger:
Release/*
因此,您不必在R1.0
yaml中相应地调整我的触发器
希望这有帮助。谢谢。这当然是非常有用的信息。我认为我赞成为Release1.0分支建立一个单独的管道,尽管目前我不会有任何不同的构建任务。这是因为我将有不同的版本号。我尝试使用条件表达式来创建一个公共管道,但遇到了自定义构建编号的问题。我试图在发布流和基于主干的开发的上下文中理解这一点。这是根据文章,发布分支是完全不必要的。从我的理解来看,核心概念是所有的更改都要在主分支/主干中进行,然后在发布分支中进行(嗯,几乎全部)。如果我将这个概念覆盖到您的响应中,那么我将发布/R1.0分支,它的.yaml也将在master分支中。这是正确的理解吗?@Chubsdad,恐怕不是。这个问题与文章中的第四个问题不同。这个问题是必须调整触发器,但是如果您遵循基于发布流和主干的开发过程,最好不要设置Release/R1.0分支,它是。yaml将在主分支中,不建议对主触发器进行任何更改。正确的方法是在主分支中进行所有更改,然后创建一个拉式请求以将更改从主分支合并到发行版,然后触发要部署的发行版。让我们以我的情况为例,我的发行版R1.0将在.net framework 4.7上,而主分支(以及其他发行版)将在dotnet core 3.1上。在这种情况下,我的管道将不同(不同的工具链)。鉴于R1.0版在我的情况下必须是一个长期运行的分支,这里的建议是什么。我很困惑。我可能正在兜圈子,但我很难连接所有的点。@ Chubsdad,因为它们在不同的目标框架中,并且发布R1.0必须是一个长的运行分支,在你的情况下,为什么不考虑创建一个新的发布分支,比如基于DoNETCARE 3.1的主控发布R2.0?