Azure devops Can';t使用动态创建的stage运行模板化yaml Azure Devops管道
我的问题 我尝试创建模板化yaml Azure Devops管道:Azure devops Can';t使用动态创建的stage运行模板化yaml Azure Devops管道,azure-devops,azure-pipelines-yaml,azure-devops-yaml,Azure Devops,Azure Pipelines Yaml,Azure Devops Yaml,我的问题 我尝试创建模板化yaml Azure Devops管道: parameters: - name: envs type: object default: - QUAL - PROD - PREPROD stages: - template: Orchestrator.yml parameters: name: envs type: object default: - QUAL - PROD
parameters:
- name: envs
type: object
default:
- QUAL
- PROD
- PREPROD
stages:
- template: Orchestrator.yml
parameters:
name: envs
type: object
default:
- QUAL
- PROD
- PREPROD
这是我的模板:
parameters:
envs: {}
stages:
- ${{ each env in parameters.envs }}:
- stage: ${{ env }}
jobs:
- job: Deploy
steps:
- script: echo Deploy project
displayName: 'Deploy'
- job: Tests
steps:
- script: echo Unit tests
displayName: Test 1
但我得到了这个错误信息:
加载YAML生成管道时出错。阵列
必须至少包含一个元素。参数名称:阶段
好的,我修改我的主脚本如下:
parameters:
- name: envs
type: object
default:
- QUAL
- PROD
- PREPROD
stages:
- stage: Build
jobs:
- job: Build
steps:
- script: echo Compilation completed...
displayName: 'Compile'
- template: Orchestrator.yml
parameters:
name: envs
type: object
default:
- QUAL
- PROD
- PREPROD
这次管道运行,但只运行第一个作业。模板未加载
我需要什么
我能够让这个场景使用单个文件脚本,但我想让它使用模板脚本
是否支持此方案?我该怎么办
谢谢我这里有一个样本作为参考:
template.YAML
)中,如下所示编写参数:
-姓名:envs
类型:对象
违约:
-夸尔
-刺激
-预处理
阶段:
-${{parameters.envs}中的每个环境:
-阶段:${{env}
displayName:'Stage${{env}}'
工作:
-工作:工作1
displayName:“作业1”
步骤:
-bash:echo“当前作业是${{env}中的job1”
-工作:工作2
displayName:“作业2”
步骤:
-bash:echo“当前作业是${{env}中的job2”
pipeline.YAML
)中,这样写触发器:
-主要
延伸:
模板:template.yaml
template.yaml
中参数“envs
”的值,可以编写如下代码
template.yaml
中这样写参数:
-姓名:envs
类型:对象
默认值:[]
阶段:
-${{parameters.envs}中的每个环境:
-阶段:${{env}
displayName:'Stage${{env}}'
工作:
-工作:工作1
displayName:“作业1”
步骤:
-bash:echo“当前作业是${{env}中的job1”
-工作:工作2
displayName:“作业2”
步骤:
-bash:echo“当前作业是${{env}中的job2”
pipeline.yaml
中,这样写触发器:
-主要
阶段:
-模板:template.yaml
参数:
环境:
-夸尔
-刺激
-预处理
要查看更多详细信息,请参见“”。谢谢。您在哪里找到扩展的文档?我在文件中找到了样本,但没有任何解释。你可以在这里看到@FrédéricDeLèneMirouze: