Azure devops 针对开发、发布和热修复分支的Azure DevOps分支/管道设置

Azure devops 针对开发、发布和热修复分支的Azure DevOps分支/管道设置,azure-devops,Azure Devops,我在为开发和发布工作设置项目时遇到困难。我已经阅读了很多文章,但是对于如何为不同的分支设置我的开发和发布管道,我无法得出一个明确的结论。在这方面我需要帮助 例如,假设我有一个Dev分支,在/azure-pipelines.yml中有一个管道DevPipeline。 此管道具有如下CI触发器: trigger: Dev features/* 现在,当我创建一个分支版本/R1.0时,我到底需要做什么 我是否要创建一个新的管道,比如Release-R1.0。此管道的.yml应位于何处 它应该覆盖/

我在为开发和发布工作设置项目时遇到困难。我已经阅读了很多文章,但是对于如何为不同的分支设置我的开发和发布管道,我无法得出一个明确的结论。在这方面我需要帮助

例如,假设我有一个Dev分支,在/azure-pipelines.yml中有一个管道DevPipeline。 此管道具有如下CI触发器:

trigger:

Dev
features/*
  • 现在,当我创建一个分支版本/R1.0时,我到底需要做什么
  • 我是否要创建一个新的管道,比如Release-R1.0。此管道的.yml应位于何处
  • 它应该覆盖/azure-pipelines.yml还是应该创建/Release-R1.0.yml

  • 如果开发人员希望为R1.0开发修复程序/热修复程序,他们是否应该在热修复程序/R1.0分支下工作?在这种情况下,我必须在R1.0 yaml中相应地调整触发器

  • 非常感谢您的帮助

    谢谢

  • 现在,当我创建一个分支版本/R1.0时,我到底需要做什么
  • 我是否要创建一个新的管道,比如Release-R1.0。此管道的.yml应位于何处
  • 这取决于新创建的管道是否与
    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?