这是我的 Yml 文件的一部分 如果失败,我需要重新调用此模板。它应该再次重新运行。几秒钟后,理想情况下。我是 yml 文件的新手 我尝试使用 retryCountOnTaskFailure 但它应该在任务下,但模板调用不同的层次结构
- template: ${{variables['System.DefaultWorkingDirectory']}}
parameters:
Test: ${{ parameters.isTestRelease }}
Environment: ${{ parameters.deploymentTarget }}
Component: '${{ parameters.component }}'
最佳答案
retryCountOnTaskFailure 功能应用于管道中的各个任务。模板不是任务,它们的作用更像是一个包含,它将模板的内容扩展到您的管道中。
# pipeline.yml
trigger: none
parameters:
- name: isTestRelease
type: boolean
default: false
- name: deploymentTarget
type: string
default: DEV
values:
- DEV
- QA
- UAT
- PROD
- name: component
type: string
default: 'x'
stages:
- template: my-template.yml
parameters:
Test: ${{ parameters.isTestRelease }}
Environment: ${{ parameters.deploymentTarget }}
Component: ${{ parameters.component }}
在模板中,您需要将重试逻辑添加到特定任务:
# my-template.yml
parameters:
- name: isTestRelease
type: boolean
- name: component
type: string
stages:
- stage: Test
jobs:
- job: 1
steps:
- task: ...
- task: ...
- task: ...
retryCountOnFailure: 2
- task: ...
关于Azure Pipelines 自动重试任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72574744/