Azure Pipeline错误:找不到与模板文件模式匹配的任何文件

时间:2020-04-22 15:48:04

标签: azure-devops azure-pipelines azure-pipelines-release-pipeline arm-template

使用Azure管道作为代码,并尝试使用YAML管道通过Azure中的ARM模板创建资源。

在Azure DevOps中,我已将代码(部署json,参数json和yml文件等)推送到功能分支下的Azure Repos Git中。

在运行管道时,由于“ csmFile”值,我遇到错误“错误:找不到与模板文件模式匹配的任何文件”。

我的yml文件包含如下的ARM模板部署信息。

    trigger:
 branches:
    include:
    - dev-pipecode

pool:
  vmImage: 'windows-latest'

steps:

- task: AzureResourceManagerTemplateDeployment@3
  inputs:
    deploymentScope: 'Resource Group'
    azureResourceManagerConnection: 'company-development-Contributor'
    subscriptionId: 'XXXXXXXX'
    action: 'Create Or Update Resource Group'
    resourceGroupName: 'name of the resource group'
    location: 'North Europe'
    templateLocation: 'Linked artifact'
    csmFile: '$(System.DefaultWorkingDirectory)/AzureAuto/pipelineascode.json'
    csmParametersFile: '$(System.DefaultWorkingDirectory)/AzureAuto/param-pipelineascode.json'
    deploymentMode: 'Incremental'

我错过了什么吗?请指导我。谢谢。

1 个答案:

答案 0 :(得分:1)

首先,仅供确认。

基于您在任务中定义的$(System.DefaultWorkingDirectory)/AzureAuto/pipelineascode.json,您需要确保pipelineascode.json在存储库中的位置应如下所示:

   Repository
    |    AzureAuto
    |    |   pipelineascode.json
    |    |   param-pipelineascode.json

这是我的存储库样本:

enter image description here


如果您的ARM模板存储库的结构确实符合上述要求,那么我想它应该与您的分支相关。

您的 master 分支是否仍然包含AzureAuto文件夹和pipelineascode.json / param-pipelineascode.json文件?

您可以转至遇到构建错误消息的build result页面,并确认分支名称是否是您存储的ARM模板文件的名称:

enter image description here

至于我为什么会这样,这是因为系统默认情况下会基于master分支构建,而用户会先从 new YAML管道开始,然后再从 运行它。

此时,您需要将azure-pipelines.yml文件从master分支复制到存储ARM模板文件的功能分支。

然后去Pipelines =>打开相应的YAML版本=> 编辑 =>专注于左上角并更改分支:

enter image description here

现在,此YAML管道应基于您存储ARM模板的正确分支,并成功找到JSON文件。