【问题标题】:Azure Pipeline Get Template name from variableAzure Pipeline 从变量中获取模板名称
【发布时间】:2020-06-28 19:31:59
【问题描述】:

请考虑以下几点:

- job: Backend
   steps:
    
    - template: $(ClassLibraryTemplate)
      parameters:
        projectName: 'Core'
        solutionPath: 'Source/Core.sln'

ClassLibraryTemplate 被定义为管道变量。但是当我运行构建时,它失败了,因为变量没有被它的值替换并且没有找到模板。

不能把模板名存入变量吗?

【问题讨论】:

  • 我不认为可以从变量中获取模板路径。

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


【解决方案1】:

对于 Azure DevOps YAML 管道,模板在编译时得到处理。但是, $(ClassLibraryTemplate) 在运行时得到处理。这就是它失败的原因。

更多信息:Understand variable syntax

您可以在 YAML 管道中定义变量或参数,然后使用模板表达式。对于参数,您可以在弹出窗口中排队/运行管道时指定值。

例如:

parameters:
- name: temName
  displayName: template name
  type: string
  default: steps/test.yml


trigger:
  - none

variables:
- name: tem
  value: steps/build.yml 

jobs:
- job: Linux
  pool:
    vmImage: 'ubuntu-16.04'
  steps:
  - template: ${{ variables.tem }} 
  - template: ${{ parameters.temName }} 

【讨论】:

  • 好的,谢谢。我认为这是答案,但它看起来有点奇怪,所以我现在会坚持使用静态名称 :)
  • 是否可以使用动态变量作为模板引用?我希望能够使用由 UI 参数驱动的 steps/test-dev.yml 或 steps/test-qa.yml。
猜你喜欢
  • 1970-01-01
  • 2017-02-25
  • 2021-01-03
  • 2021-10-29
  • 2021-05-25
  • 2017-07-17
  • 2021-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多