如何设置我的Az DevOps管道以驻留在其他分支中?

时间:2019-10-09 00:18:18

标签: azure-devops

我正在为.NET Core 3.0 mvc项目的CI设置Azure DevOps管道。

我创建了一个新分支DEVOPS,我想将YAML文件存储在其中。该文件包括一个master分支更改的触发器:

  

触发:
  -大师

     

池:
    vmImage:'ubuntu-latest'

     

下面还有#个其他步骤/任务...

我从.gitignore分支中删除了azure-pipelines.ymlDEVOPS以外的所有文件,将其提交,然后将其推到原始位置(Az DevOps Repo)。

然后我切换到master分支,删除azure-pipelines.yml文件,提交并推送。

这没有触发管道

然后,我对主视图,提交视图和推送视图中的其中一种视图进行了更改。

这也没有触发管道

因此,如何配置Azure DevOps管道以将azure-pipelines.yml文件存储在master以外的分支中,并触发对master的更改?

1 个答案:

答案 0 :(得分:0)

根据您的操作步骤和YAML配置,无法触发构建是合理的。

让我们首先关注YAML配置。在您的YAML定义中,您将master设置为触发器分支。这意味着只有master上发生的更改才能触发此构建管道。

在第一步中,您从DEVOPS分支中删除了一些文件。然后提交并将其推送到remotes/Origin中。但是,正如您在管道中定义的那样,此操作无法触发该管道。符合预期。

接下来,在master分支中,删除azure-pipelines.yml文件,然后提交并推送。请注意,此时,远程主分支已与本地主分支同步。一言以蔽之,在您推送到源之后,Azure Devops的master分支中不存在任何azure-pipelines.yml文件。

但是,是否可以运行该构建取决于yml是否存在。是的,您已经在master分支上进行了一些更改。但是如果没有yml文件,该构建将无法成功运行。这就是为什么您遇到未触发管道的原因。

同样,您下一步的原因。


  

如何配置Azure DevOps管道以存储   除master以外的其他分支中的azure-pipelines.yml文件,并在   更改为主人?

到目前为止,如果您的构建定义类型为 YAML ,则无法实现。

对于定义类型为YAML的管道,要达到您的期望,具有相同配置的yml文件也必须存储在管道中定义的相关分支中。

以您在问题中描述的示例为例。如果仅将yml文件存储在DEVOPS分支中,则无论在master分支上进行任何更改,都将永远不会触发构建。

要在对master进行更改时触发,此yml文件也必须存储在master分支中。因此,可以触发定义类型为YAML的构建管道的前提是,如果yml定义中列出了yml文件,则它也必须存在于相关分支中。这是因为,此构建类型可以基于源文件中的yml运行。