将两个阶段分叉回一个 azure pipeline
Forking two stages back into one azure pipeline
我目前正在研究 azure devops yaml 管道。
管道的结构看起来像这样:
如您所见,我有多个“分支”,在一种情况下,我想将“分支方式”合二为一。 (在 download_from_source 阶段之前)。
noapproval 阶段有点多余,我想删除它。
有没有办法在没有额外阶段的情况下实现这一点?
所以它看起来像这样?
不太确定您要实现的目标,但这里有一个示例,说明如何在阶段中设置变量并将它们用作未来步骤的条件。
我假设的批准检查阶段 运行 进行一些检查以验证管道是否应该 运行。因此,如果这些检查通过,我们可以设置一个输出变量,然后使用该变量来调节下载任务。如果检查失败则 approval=false 并且下载任务将不会 运行.
pool: default
variables:
system.debug: true
stages:
- stage: check_package
jobs:
- job: check_package
steps:
- bash: echo "checking package"
- stage: approval_check
jobs:
- job: bash
steps:
# run some checks and if succesful we can set set output variable approved=true
- bash: echo "##vso[task.setvariable variable=approved;isOutput=true]true"
name: approval
- stage: download
dependsOn: approval_check
condition: and(succeeded(), eq(dependencies.approval_check.outputs['bash.approval.approved'], 'true'))
jobs:
- job: download
steps:
- bash: echo "Downloading"
- stage: download2
dependsOn: approval_check
condition:
jobs:
- job: download
steps:
- bash: echo "Downloading"
我目前正在研究 azure devops yaml 管道。
管道的结构看起来像这样:
如您所见,我有多个“分支”,在一种情况下,我想将“分支方式”合二为一。 (在 download_from_source 阶段之前)。 noapproval 阶段有点多余,我想删除它。
有没有办法在没有额外阶段的情况下实现这一点? 所以它看起来像这样?
不太确定您要实现的目标,但这里有一个示例,说明如何在阶段中设置变量并将它们用作未来步骤的条件。
我假设的批准检查阶段 运行 进行一些检查以验证管道是否应该 运行。因此,如果这些检查通过,我们可以设置一个输出变量,然后使用该变量来调节下载任务。如果检查失败则 approval=false 并且下载任务将不会 运行.
pool: default
variables:
system.debug: true
stages:
- stage: check_package
jobs:
- job: check_package
steps:
- bash: echo "checking package"
- stage: approval_check
jobs:
- job: bash
steps:
# run some checks and if succesful we can set set output variable approved=true
- bash: echo "##vso[task.setvariable variable=approved;isOutput=true]true"
name: approval
- stage: download
dependsOn: approval_check
condition: and(succeeded(), eq(dependencies.approval_check.outputs['bash.approval.approved'], 'true'))
jobs:
- job: download
steps:
- bash: echo "Downloading"
- stage: download2
dependsOn: approval_check
condition:
jobs:
- job: download
steps:
- bash: echo "Downloading"