В данном документе указывается запутанное направление. Вы можете попробовать загрузить журнал сборки, который не работает так, как вы ожидаете, а затем проанализировать содержимое файла initializeLog.txt
. Все key
оценивающие выражения перечислены в списке.
Попробуйте следующий пример:
start.yml
# File: start.yml
parameters:
- name: buildSteps # the name of the parameter is buildSteps
type: stepList # data type is StepList
default: [] # default value of buildSteps
stages:
- stage: secure_buildstage
pool: Hosted VS2017
jobs:
- job: secure_buildjob
steps:
- script: echo This happens before code
displayName: 'Base: Pre-build'
- script: echo Building
displayName: 'Base: Build'
- ${{ each step in parameters.buildSteps }}:
- ${{ each pair in step }}:
${{ if ne(pair.value, 'CmdLine@2') }}:
${{ pair.key }}: ${{ pair.value }}
${{ if eq(pair.value, 'CmdLine@2') }}:
'${{ pair.value }}': error
- script: echo This happens after code
displayName: 'Base: Signing'
azure -pipelines.yml
trigger:
- master
extends:
template: start.yml
parameters:
buildSteps:
- bash: echo Test #Passes
displayName: succeed
- bash: echo "Test"
displayName: succeed
- script: echo "Script Test"
displayName: Fail
Затем вы увидите сбой конвейера из-за обнаруженного шага script
:
Примечание: Эта проверка состоит в том, что как только шаблон обнаружит, что один CmdLine@2
шаг был передан из azure-pipeline.yml
, он не выполнит текущий конвейер вместо одного указанного шага .