azure-devops - 如何在不使用触发器的情况下将管道限制到特定分支?

标签 azure-devops

我如何限制 Azure DevOps 中的按需(即未触发)管道,以便它们仅在特定分支上运行?

例如,我有一个只能在 master 分支上运行的管道(使用较新的 YAML 语法),因为它用于将代码推送到生产环境,并且只能由某些开发人员(我们处理大量 PII 数据,因此我们的审计控制相当苛刻)。我有另一个管道应该在 except master 的任何分支上运行,因为它用于将代码推送到集成/测试环境,并且可以由任何人运行。

如果我指定了一个触发器,我可以告诉它只在某些分支上触发;但是如果我在我的 YAML 中设置 trigger: none 那么我就不能应用这些限制。有什么想法吗?

最佳答案

我看到这个帖子是因为我有同样的需求。在我的例子中,我想将管道限制为 releases/* 分支。 如果有帮助,我所做的是在舞台上设置条件:

trigger:
  branches:
    include:
    - releases/*

...

- name: isReleasesBranch
  value: $[startsWith(variables['Build.SourceBranchName'], 'releases/')]

...

stages:
- stage: Production
  displayName: 'Production Deploy'
  dependsOn: QA
  condition: and(succeeded(), or(variables.isReleasesBranch))

...

关于azure-devops - 如何在不使用触发器的情况下将管道限制到特定分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69444811/

相关文章:

visual-studio - Visual Studio 2019 - Azure DevOps 的旧凭证已缓存,我们无法摆脱它

azure-devops - 添加具有预发布依赖项的包

azure - 使用 func azure functionapppublish 时在 azure 中安装非 pip 或 apt 包

azure-devops - 如何分离、取消链接、清除、删除或回滚 VSTS 与 Azure AD 的连接

azure-devops - 将 Azure Boards 从一个组织复制到另一个组织的过程

azure-devops - 如何从 npm 任务在 AzureDevOps 上设置输出变量以将其传递给其他任务?

.net - Azure Pipelines : "Error NETSDK1004: Assets file ' . ..\project.assets.json' not found."在使用 Cache@2 任务缓存 Nuget 包时在管道中

node.js - 将TFS2017任务更新到最新版本

azure - 为什么我的应用服务的 Kudu 网站显示 503 服务不可用

azure-devops - VSTS Rest API 按字段值获取工作项