我有以下 main.yml
构建管道,
parameters:
- name: ListOfEnvironments
type: object
default:
- dev
- tst
- acc
- prd
stages:
- ${{ each value in parameters.ListOfEnvironments }}:
- template: templates/stage.yml
parameters:
environment_name: ${{ value }}
现在上面的模板可以工作并且能够调用不同的特定于环境的 stage.yml
模板。
现在在 stage.yml 中我有以下结构:
stages:
- stage: deploy_to_env
displayName: Deploy
jobs:
- job: deploy
displayName: Deploy
variables:
- name: environment
value: ${{ parameters.environment_name }}
steps:
${{ if eq(parameters.environment_name, "dev") }}:
template: ../steps_templates/dev_steps.yml
${{ if eq(parameters.environment_name, "acc") }}:
template: ../steps_templates/acc_steps.yml
我无法根据条件调用步骤模板。另外,我试着像下面这样
${{ if eq(parameters.environment_name, "dev") }}:
steps:
- template: ../steps_templates/dev_steps.yml
${{ if eq(parameters.environment_name, "acc") }}:
steps:
- template: ../steps_templates/acc_steps.yml
它不起作用,有没有人知道如何根据条件参数调用步骤。
更新:
我终于设法像这样走得更远,它识别了 env 变量,但现在它抱怨 Unrecognized value: '"dev"'. Located at position 33 within expression: eq(parameters.environment_name, dev)
steps:
- ${{ if eq(parameters.environment_name, "dev") }}:
- template: ../steps_templates/dev_steps.yml
- ${{ if eq(parameters.environment_name, "acc") }}:
- template: ../steps_templates/acc_steps.yml
在将 "
更改为 '
后,它现在可以工作了。现在一切都好了。
答案 0 :(得分:0)
可能有人会发现这有帮助: 下面的布局可以正常工作:
steps:
- ${{ if eq(parameters.environment_name, 'dev') }}:
- template: ../steps_templates/dev_steps.yml
- ${{ if eq(parameters.environment_name, 'acc') }}:
- template: ../steps_templates/acc_steps.yml