Azure Pipelines 自动重试任务

标签 azure azure-devops azure-web-app-service azure-pipelines

这是我的 Yml 文件的一部分 如果失败,我需要重新调用此模板。它应该再次重新运行。几秒钟后,理想情况下。我是 yml 文件的新手 我尝试使用 retryCountOnTaskFailure 但它应该在任务下,但模板调用不同的层次结构

https://learn.microsoft.com/en-us/azure/devops/release-notes/2021/sprint-195-update#automatic-retries-for-a-task

- 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/

相关文章:

azure - Cloudera - 启动服务 - NameNode 未格式化

c# - 我可以创建一个向仪表板公开功能但不使用 Azure 存储的 Azure Webjob 吗?

azure - 适用于任何基于 IaaS 的云的与云无关的工具

tfs - 构建计数器 - Visual Studio 团队服务

azure-devops - 如何从 CI/CD 管道监控 adf 管道

c# - 在哪里可以找到 Azure 应用服务的 docker 容器日志

azure - WP Silverlight 后台任务与 Azure 的通信

azure - 如何获取 Azure DevOps Artifact 使用者的列表?

azure - 将 Azure 应用服务限制为 IP 白名单而不返回 403

node.js - Package.json 指定了 Node 版本,但 Azure 告诉我没有指定