是否可以在任务或条件循环之间添加延迟

问题描述 投票:0回答:4

是否可以在构建或发布管道中的运行任务之间循环或延迟?我将容器部署为这些管道的一部分,它们需要时间来启动并可用于 Web 测试,因此我无法在发布任务之后立即运行 Web 测试。 TFS 或 VSTS 中可以通过什么解决方案来满足此要求?

tfs azure-devops azure-pipelines tfsbuild
4个回答
36
投票

放置一个内联 PowerShell 任务,运行

Start-Sleep -Seconds 10
或您想要等待的时间。

或者更好的是,编写自己的脚本来轮询容器的可用性。


18
投票

您可以添加一个 Agentless 阶段并在其中放置一个 Delay 任务。那么你的构建将会延迟 X 分钟。然后您可以使用

agent phase
继续您的管道。只需确保配置
Run this phase
或设置阶段之间的依赖关系即可。这适用于 TFS 和 Azure Devops Server。


2
投票

smoksnes 的回答所示的发布任务,Delay agentless 任务也可以在 Azure DevOps YAML(构建)管道中使用。这是一个例子:

pool: server

steps:
  - task: Delay@1
    inputs:
      delayForMinutes: '5'

请注意,

pool: server
是这里的关键。它使该任务无需代理即可运行。 ADO 提供了其中一些无代理任务,例如,如果您需要的延迟不一致,则手动验证可能会很有用。


0
投票

我使用 PoweShell 脚本来调用我的站点,以便它在继续之前将其唤醒。我的网站很大,所以必须增加超时时间。只需使用类似这样的内容创建一个 PowerShell 步骤...

Invoke-WebRequest -Uri“https://yoursite.com/default.aspx”-UseBasicParsing -TimeoutSec 300

© www.soinside.com 2019 - 2024. All rights reserved.