如何仅从 azure devops 中的功能/主题分支触发管道?

时间:2021-04-23 19:50:46

标签: azure-devops devops azure-pipelines-yaml azure-devops-pipelines

我正在尝试从功能分支开发管道。 示例代码:

trigger:
  branches:
    include:
      - deploy-pipeline/sql/test/*
    exclude:
      - deploy-pipeline/pipeline/*
      - deploy-pipeline/sql/sample_scripts/*

此处deploy-pipeline 是功能分支的名称。我在功能分支中有 azure-pipeline.yml 文件。我只想在 deploy-pipeline/sql/test/ 内部署 sql 脚本,所以我将它包含在 include 标志中,只要 sql/ 有任何变化test 文件夹,管道应自动触发并将 sql 脚本部署到我的测试环境。一旦我测试了此功能按预期工作,我就可以将此管道结构推送到 master 以仅在特定文件夹中部署 sql 脚本。 我测试了将更改推送到 sql/test 文件夹,示例 sql 脚本。但是管道不会自动触发。不知道我在哪里错过了它。请帮帮我。

1 个答案:

答案 0 :(得分:0)

在触发器分支中,您需要写的是您的分支名称。如果您的分支名称是 deploy-pipeline/sql/test,则无需在其后面写上 /* 来指示分支中的每个文件。

也就是说,你只需要在触发器中写上分支名称,那么分支中的每件事都可以触发管道。

所以脚本应该是这样的:

trigger:
  branches:
    include:
      - deploy-pipeline/sql/test
    exclude:
      - deploy-pipeline/pipeline
      - deploy-pipeline/sql/sample_scripts

我猜你可能会混淆路径触发器和分支触发器。分支触发器中只能写入分支名称,路径触发器中只能写入路径。

点击 CI triggers 了解详细信息和示例。