12

我使用 Azure Pipelines 作为 Azure DevOps 的一部分。我正在尝试在模板文件中定义变量,因为我需要多次使用相同的值。

这是我的stage-template.yml

parameters:
 - name: param1
   type: string
 - name: param2
   type: string

variables:
  var1: path/${{ parameters.param2 }}/to-my-file.yml

stages:
 - stage: Deploy${{ parameters.param2 }}
   displayName: Deploy ${{ parameters.param1 }}
   jobs:  
    ...

尝试使用此管道时,我收到一条错误消息:

/stage-template.yml(行:7,列:1):意外值“变量”

为什么这不起作用?我做错了什么?

4

2 回答 2

2

你不能在管道中有参数,只能在模板引用中:

name: string  # build numbering format
resources:
  pipelines: [ pipelineResource ]
  containers: [ containerResource ]
  repositories: [ repositoryResource ]
variables: # several syntaxes, see specific section
trigger: trigger
pr: pr
stages: [ stage | templateReference ]

如果你想在模板中使用变量,你必须使用正确的语法:

parameters:
 - name: param1
   type: string
 - name: param2
   type: string

stages:
- stage: Deploy${{ parameters.param2 }}
  displayName: Deploy ${{ parameters.param1 }}
  variables:
    var1: path/${{ parameters.param2 }}/to-my-file.yml
  jobs:  
  ...
于 2020-03-29T10:42:04.770 回答
0

这对我有用:

在您的父 yaml 中:

stages:
- stage: stage1
  displayName: 'stage from parent'
  jobs:
  - template: template1.yml  
    parameters:
        param1: 'somevalueforparam1'

内模板1:

parameters:  
    param1: ''  
    param2: ''    
jobs:
- job: job1  
  workspace:    
    clean: all  
    displayName: 'Install job'  
   pool:    
      name: 'yourpool'  
  variables:
   - name: var1     
     value: 'value1'
于 2021-10-19T12:21:05.357 回答