Azure Devops:是否可以将Yaml模板嵌套在另一个Yaml模板中?

全体杜林

是否可以将yaml模板嵌套在另一个yaml模板中?

我在不同的Git存储库中有多个NuGet项目,并且正在尝试对在nuget.org上发布NuGets的过程进行模板化。

因此,我创建了一个名为“ devops-templates”的git存储库,做了一个第一个yaml模板,请确保它可以工作,然后将其划分为4个yaml模板(构建解决方案,生成程序包,运行单元测试,发布),然后将它们引用到全球Yaml模板。

问题是,当我尝试在管道中使用此全局模板时,出现了错误

/Net/Utilities/[email protected] (Line: 33, Col: 18): A template expression is not allowed in this context,/Net/Utilities/[email protected] (Line: 36, Col: 21): A template expression is not allowed in this context,/Net/Utilities/[email protected] (Line: 48, Col: 24): A template expression is not allowed in this context,/Net/Utilities/[email protected] (Line: 53, Col: 28): A template expression is not allowed in this context,/Net/Utilities/[email protected] (Line: 54, Col: 26): A template expression is not allowed in this context,/Net/Utilities/[email protected] (Line: 59, Col: 21): A template expression is not allowed in this context,/Net/Utilities/[email protected] (Line: 60, Col: 22): A template expression is not allowed in this context,/Net/Utilities/[email protected] (Line: 61, Col: 32): A template expression is not allowed in this context,/Net/Utilities/[email protected] (Line: 63, Col: 21): A template expression is not allowed in this context,/Net/Utilities/[email protected] (Line: 64, Col: 26): A template expression is not allowed in this context

我在Microsoft文档中进行了搜索:https : //docs.microsoft.com/zh-cn/azure/devops/pipelines/process/templates?view=azure-devops,但未找到任何有关它的信息。

这是我的代码的某些部分:

azure-pipelines.yml(主存储库):

resources:
  repositories:
    - repository: templates
      type: github
      name: (...)/devops-templates
      ref: refs/tags/v1.1.0
      endpoint: (...)

stages:
- template: Net/Pipeline/[email protected]
  parameters:
    solution: $(solution)
    nuGetsArtifactName: $(nuGetsArtifactName)
    buildArtifactName : $(buildArtifactName)
    (...)

NuGetsPipeline.yml(devops模板存储库):

parameters:
 nuGetsArtifactName: 'NuGets'
 buildArtifactName : 'Build'
 nuGetSource: https://api.nuget.org/v3/index.json
 solution: ''
 (...)

stages:

- stage: Build
  jobs:
  - template: ${{variables['System.DefaultWorkingDirectory']}}/Net/Utilities/BuildSolution.yml
    parameters:
      buildArtifactName : ${{ parameters.buildArtifactName }}
      (...)

  - template: ${{variables['System.DefaultWorkingDirectory']}}/Net/Utilities/GenerateNuGets.yml
    parameters:
      nuGetsArtifactName: ${{ parameters.nuGetsArtifactName }}
      buildArtifactName : ${{ parameters.buildArtifactName }}
      (...)

- stage: 'UnitTests'
  jobs:
  - template: ${{variables['System.DefaultWorkingDirectory']}}/Net/Utilities/RunUnitTests.yml
    parameters:
      buildArtifactName : ${{ parameters.buildArtifactName }}
      (...)

- stage: 'Publish'
  jobs:
  - template: ${{variables['System.DefaultWorkingDirectory']}}/Net/Utilities/PublishNuGets.yml
    parameters:
      nuGetsArtifactName: ${{ parameters.nuGetsArtifactName }}
      (...)

BuildSolution.yml(devops模板存储库):

parameters:
  buildArtifactName: 'Build'
  solution: ''
  (...)

  jobs:
  - job: 'BuildSolution'
    pool:
        vmImage: ${{ parameters.vmImage }}
    continueOnError: false
    variables:
      artifactName: ${{ parameters.buildArtifactName }}
    steps:
      - task: [email protected]
        displayName: 'Restore NuGet packages'
        inputs:
          restoreSolution: ${{ parameters.solutionDir }}/${{ parameters.solution }}
          configuration: ${{ parameters.buildConfiguration}}

      - task: [email protected]
        (...)

编辑:我添加了我的代码的某些部分。

李维·鲁

您的BuildSolution.yml中似乎存在缩进错误。参数和作业应具有相同的缩进。参考以下内容:

parameters:
  buildArtifactName: "build"
  solution: ""

jobs:
- job: 'BuildSolution'
  pool:
    vmImage: ${{parameters.vmImage}}
    continueOnError: false
  variables:
    artifactName: ${{ parameters.buildArtifactName}}
  steps:
    - task: [email protected]
      displayName: 'Restore NuGet packages'
      inputs:
        restoreSolution: ${{ parameters.solutionDir }}/${{ parameters.solution }}
        configuration: ${{parameters.buildConfiguration}}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否可以将另一个Azure AD中的用户添加到您自己的Azure AD中的组中?

来自分类Dev

是否可以将一个数据:URI嵌套在另一个数据中?

来自分类Dev

Azure DevOps管道任务等待运行以完成另一个管道

来自分类Dev

为什么下载后我的Azure Devops Pipeline Artifact被另一个进程锁定?

来自分类Dev

在Azure DevOps存储库中的另一个项目中签出子模块

来自分类Dev

在Azure DevOps中,是否有GUI方式可以禁用基于YAML的管道中的任务?

来自分类Dev

Azure devops管道-仅在另一个管道上触发,不提交

来自分类Dev

如何在Azure DevOps Server 2019本地中使用yaml模板参数?

来自分类Dev

Azure DevOps Server 2019本地部署是否支持其他存储库中的Yaml模板?

来自分类Dev

可以将Azure DevOps开发板共享查询复制到另一个项目吗?

来自分类Dev

以另一个角色访问不同的Azure DevOPS Server项目

来自分类Dev

在Azure devops YAML中循环浏览动态模板参数

来自分类Dev

如果Azure Devops Yaml中的语句

来自分类Dev

如何阻止用户读取Azure Devops中分支的另一个用户?

来自分类Dev

如何将团队中的工作项目移动或复制到Azure Devops中同一项目中的另一个团队?

来自分类Dev

Azure ARM模板-如何将链接模板的输出变量作为参数传递给另一个模板?

来自分类Dev

如何从Azure DevOps管道中的另一个作业访问InvokeRestAPI任务的响应?

来自分类Dev

是否可以在发生事件时自动将所有用户从Azure Active Directory转移到另一个域数据库?

来自分类Dev

从另一个管道触发Azure DevOps管道

来自分类Dev

如何在Azure DevOps中的另一个变量中使用变量

来自分类Dev

Azure Devops中对拉取请求的生成策略是否可以使用在上述PR中更新的yaml文件?

来自分类Dev

将Yaml从GitLab转换为Azure Devops

来自分类Dev

Azure DevOps Yaml管道-从一个作业到另一个作业的输出变量

来自分类Dev

azure devops:一个用户看不到该存储库,同一组中具有相同权限的另一个用户可以看到。为什么是这样?

来自分类Dev

是否可以直接使用YAML在Azure DevOps中创建发布管道(CD)?

来自分类Dev

如何在azure devops中从当前存储库运行属于另一个存储库的模板(.yml)?

来自分类Dev

是否可以将“ find -exec”嵌套在另一个“ find -exec”中?

来自分类Dev

从Azure中的另一个API调用API

来自分类Dev

在 Azure Devops 的另一个 Readme.md 中包含 Markdown 文件

Related 相关文章

  1. 1

    是否可以将另一个Azure AD中的用户添加到您自己的Azure AD中的组中?

  2. 2

    是否可以将一个数据:URI嵌套在另一个数据中?

  3. 3

    Azure DevOps管道任务等待运行以完成另一个管道

  4. 4

    为什么下载后我的Azure Devops Pipeline Artifact被另一个进程锁定?

  5. 5

    在Azure DevOps存储库中的另一个项目中签出子模块

  6. 6

    在Azure DevOps中,是否有GUI方式可以禁用基于YAML的管道中的任务?

  7. 7

    Azure devops管道-仅在另一个管道上触发,不提交

  8. 8

    如何在Azure DevOps Server 2019本地中使用yaml模板参数?

  9. 9

    Azure DevOps Server 2019本地部署是否支持其他存储库中的Yaml模板?

  10. 10

    可以将Azure DevOps开发板共享查询复制到另一个项目吗?

  11. 11

    以另一个角色访问不同的Azure DevOPS Server项目

  12. 12

    在Azure devops YAML中循环浏览动态模板参数

  13. 13

    如果Azure Devops Yaml中的语句

  14. 14

    如何阻止用户读取Azure Devops中分支的另一个用户?

  15. 15

    如何将团队中的工作项目移动或复制到Azure Devops中同一项目中的另一个团队?

  16. 16

    Azure ARM模板-如何将链接模板的输出变量作为参数传递给另一个模板?

  17. 17

    如何从Azure DevOps管道中的另一个作业访问InvokeRestAPI任务的响应?

  18. 18

    是否可以在发生事件时自动将所有用户从Azure Active Directory转移到另一个域数据库?

  19. 19

    从另一个管道触发Azure DevOps管道

  20. 20

    如何在Azure DevOps中的另一个变量中使用变量

  21. 21

    Azure Devops中对拉取请求的生成策略是否可以使用在上述PR中更新的yaml文件?

  22. 22

    将Yaml从GitLab转换为Azure Devops

  23. 23

    Azure DevOps Yaml管道-从一个作业到另一个作业的输出变量

  24. 24

    azure devops:一个用户看不到该存储库,同一组中具有相同权限的另一个用户可以看到。为什么是这样?

  25. 25

    是否可以直接使用YAML在Azure DevOps中创建发布管道(CD)?

  26. 26

    如何在azure devops中从当前存储库运行属于另一个存储库的模板(.yml)?

  27. 27

    是否可以将“ find -exec”嵌套在另一个“ find -exec”中?

  28. 28

    从Azure中的另一个API调用API

  29. 29

    在 Azure Devops 的另一个 Readme.md 中包含 Markdown 文件

热门标签

归档