我正在尝试通过下面显示的蔚蓝管道传递舞台列表
np.einsum
扩展下面显示的模板
# File: azure-pipelines.yml
trigger:
- master
extends:
template: start_stage.yml
parameters:
cdstages:
- stage: secure_buildstage
pool: Hosted VS2017
jobs:
- job: secure_buildjob
steps:
- bash: echo This happens before code
displayName: 'Base: Pre-build'
- bash: echo Building
displayName: 'Base: Build'
- bash: echo This happens after code
displayName: 'Base: Signing'
- stage: secure_deploystage
pool: Hosted VS2017
jobs:
- job: secure_deployjob
steps:
- bash: echo This happens before code
displayName: 'Base: Pre-build'
- bash: echo Building
displayName: 'Base: Build'
- script: echo This happens after code
displayName: 'Base: Signing'
目标是列出阶段并验证用户是否仅在执行公司合规团队批准的步骤。
我遇到错误 [] [1
不确定为什么会出现“任务”错误,没有在任何地方使用任务关键字。 有帮助吗?
答案 0 :(得分:1)
根据我的测试,看来start_stage.yml
中的舞台列表不支持添加each
指令以获取更深的内容(例如工作和步骤)。
使用舞台列表时,它可以获取舞台并将其用于比较。
例如:
parameters:
- name: cdstages # the name of the parameter is buildSteps
type: stageList # data type is StepList
default: [] # default value of buildSteps
stages:
- ${{ each stage in parameters.cdstages }}:
- ${{ each pair in stage }}:
${{ if ne(pair.value, 'abc') }}:
${{ pair.key }}: ${{ pair.value }}
${{ if eq(pair.value, 'abc') }}:
'${{ pair.value }}': error
此Yaml模板可以工作。
但是当我在舞台后面添加each
指令以获取工作时。作业不可用。
parameters:
- name: cdstages
type: stageList
default: []
stages:
- ${{ each stage in parameters.cdstages }}:
- ${{ each job in stage.jobs }}:
- ${{ each pair in job }}:
${{ if ne(pair.value, 'abc') }}:
${{ pair.key }}: ${{ pair.value }}
${{ if eq(pair.value, 'abc') }}:
'${{ pair.value }}': error
根据您的要求,您需要执行构建步骤并将其用于比较。
您可以尝试直接使用steplist
类型。
下面是有关steplist的示例,您可以参考它。
希望这会有所帮助。