在Azure Devops Yml管道上的环境名称中使用变量

时间:2020-04-27 19:31:34

标签: azure-devops

我的管道中的部署作业具有环境

环境:“ myname-$(variable1)”

但是当我查看Azure Devops中的环境时,它并没有替换变量,而是将我的环境命名为“ myname-$(variable1)”,而不是“ myname-helloworld”。

对环境名称使用变量的任何方法吗?

已更新示例

stages.yml

stages:
- stage:
  variables:
    EnvironmentName: Prod
  jobs:
  - template: steps.yml
....

steps:yml

jobs:
- deployment: deployment

  environment: ${{ EnvironmentName }}
  strategy:
  ...

2 个答案:

答案 0 :(得分:0)

解决方案是使用参数而不是变量。

https://docs.microsoft.com/en-us/azure/devops/pipelines/process/templates?view=azure-devops#insert-a-template

stages.yml

stages:
- stage:
  variables:
    EnvironmentName: Prod
  jobs:
  - template: steps.yml
    parameters:
      myParameter: Test
....

steps:yml
parameters:
- name: myParameter
jobs:
- deployment: deployment

  environment: ${{ parameters['myParameter']}}
  strategy:
  ...

答案 1 :(得分:-1)

请参阅expressions documentation。您需要使用运行时或编译时间表达式。

environment: "myname-${{ variable1 }}"

这将在解析YAML文件时扩展变量值。如果variable是您定义的变量,则会对其进行相应的扩展。

如果在管道执行的某个时刻定义了variable1,那么您需要使用运行时语法:$[ variable1 ]