这可能是一个愚蠢的问题,但我正在编写一个将处理一些自动化测试的流水线。我正在一个feature分支中开发yaml管道。有没有办法在Azure Dev ops中运行这个管道,或者是在每次迭代时提交一个pull请求并合并到master中的唯一方法?
发布于 2020-10-29 04:18:16
您可以在所需的任何分支上定义管道,然后如果选择从Existing Azure Pipelines YAML file创建管道,则可以选择您的分支并选择此文件:

另一种选择是在主构建中添加条件,以便仅在应用了某些命名约定的情况下为功能分支运行特定阶段:
variables:
isFeature: $[contains(variables['Build.SourceBranch'], 'feature')]
stages:
- stage: A
jobs:
- job: A1
steps:
- script: echo Hello Stage A!
- stage: B
condition: and(succeeded(), eq(variables.isFeature, true))
jobs:
- job: B1
steps:
- script: echo Hello Stage B!
- script: echo $(isMain)发布于 2020-10-29 04:00:14
运行DevOps管道时,请选择要为其执行管道的分支。该分支中的azure-pipelines.yaml文件将在默认情况下执行。因此,在上面的场景中,如果您在主分支中有一个azure-pipelines.yaml文件,而在feature分支中有一个不同版本的azure-pipelines.yaml,那么执行的版本将由您为哪个分支运行管道来确定。
发布于 2020-10-29 04:15:51
您可以触发从任何分支运行管道,而不仅仅是主分支。您可以在trigger字段下指定您感兴趣的分支:
trigger:
branches:
include:
- master
- feature/*
- releases/*
exclude:
- releases/old*如果你看一下这段代码,上面的代码将触发分支主节点的构建管道,你的feature文件夹中的任何分支(例如: feature/yo-currentFeature)以及你的releases文件夹下的任何分支。但是,如果对版本/旧分支进行了更改,则不会运行bulid管道。有关触发器的更多信息,请参阅:https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/azure-repos-git?view=azure-devops&tabs=yaml#ci-triggers
在触发器:分支下添加特性分支后,您对特性分支所做的任何提交或PR都将自动触发构建管道
(PS :不言而喻,但确保您的功能分支也包含您的管道yml文件)
https://stackoverflow.com/questions/64580272
复制相似问题