在主题分支中创建了 Azure 管道 yaml 文件,我可以从主题分支 运行 它吗?

Created Azure pipeline yaml file in a topic branch, can i run it from the topic branch?

这可能是一个愚蠢的问题,但我正在编写一个管道来处理一些自动化测试。我正在功能分支中开发 yaml 管道。有没有办法在 Azure Dev ops 中 运行 这个管道,或者是提交拉取请求并在每次迭代中合并到 master 的唯一方法?

当您 运行 DevOps 管道时,您选择一个分支来执行管道。该分支中的 azure-pipelines.yaml 文件是默认执行的文件。因此,在上面的场景中,如果主分支中有一个 azure-pipelines.yaml 文件,而功能分支中有一个不同版本的 azure-pipelines.yaml,则执行的版本将由哪个版本决定您正在 运行 为其管道设置分支。

您可以从任何分支触发 运行 管道,而不仅仅是主分支。 您可以在 trigger 字段下指定您感兴趣的分支:

trigger:
  branches:
    include:
    - master
    - feature/*
    - releases/*
    exclude:
    - releases/old*

如果您查看此代码,上面的代码将触发分支 master、功能文件夹内的任何分支(例如:feature/yo-currentFeature)和发布文件夹下的任何分支的构建管道。但是,如果对 releases/old 个分支进行更改,则不会 运行 构建管道。 有关触发器的更多信息,请参见: https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/azure-repos-git?view=azure-devops&tabs=yaml#ci-triggers

https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/azure-repos-git?view=azure-devops&tabs=yaml#pr-triggers

在 trigger:branches 下添加功能分支后,您对功能分支所做的任何提交或 PR 都会自动触发构建管道

(PS : 不言而喻,但要确保你的功能分支也包含你的管道 yml 文件)

您可以在任何您想要的分支上定义您的管道,然后如果您select从Existing Azure Pipelines YAML file创建管道,您可以选择您的分支和select这个文件:

如果您应用了一些命名约定,另一种选择是将条件添加到您的主构建到 运行 特定阶段,仅适用于功能分支:

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)