Azure devops 为每个阶段设定时间限制

Azure devops 为每个阶段设定时间限制,azure-devops,devops,Azure Devops,Devops,我已经创建了一个包含多个阶段的DevOps管道。整个管道需要很多时间才能完成。因此,我想要一种快速的方法来监控管道是否在某个阶段被卡住,并希望在阶段级别上添加更好的监控 有没有办法在舞台上设定一个时间限制,超过这个时间,我会得到关于延迟的通知。它不需要取消超过时间限制的阶段,只需通知我。您似乎无法为阶段设置超时,但是您可以为单个代理作业设置超时。这意味着如果你的舞台只有一个代理工作,那么这就是你需要的。如果阶段有多个作业,则必须将所需的阶段超时拆分为较小的作业超时。 看到截图,你可以在这里设置

我已经创建了一个包含多个阶段的DevOps管道。整个管道需要很多时间才能完成。因此,我想要一种快速的方法来监控管道是否在某个阶段被卡住,并希望在阶段级别上添加更好的监控


有没有办法在舞台上设定一个时间限制,超过这个时间,我会得到关于延迟的通知。它不需要取消超过时间限制的阶段,只需通知我。

您似乎无法为阶段设置超时,但是您可以为单个代理作业设置超时。这意味着如果你的舞台只有一个代理工作,那么这就是你需要的。如果阶段有多个作业,则必须将所需的阶段超时拆分为较小的作业超时。 看到截图,你可以在这里设置

至于你问题的第二部分,这样的事情是不被支持的。但你总是可以作弊。有很多方法可以做到这一点。最简单的选择可能是有一个额外的代理作业,该作业以与其他/主作业并发运行的方式触发。在这个作业中,你可以让一个PS脚本运行一个循环,只要你的超时是,如果它超过了超时,它就会发送一个延迟通知


您可以为构建步骤设置超时,还可以选中“出错时继续”。但是,超时将取消耗时太长的生成步骤,因此无法成功完成。这取决于构建步骤/脚本的实现方式

然后在每个步骤之后添加条件构建步骤,用于将通知发送到mail/slack/teams/which

测试这一点的一个简单方法是创建一个命令行构建步骤,并将“Sleep 120”添加为命令。然后将构建步骤的超时设置为1分钟

超时显示在日志中:

这是生成步骤的日志: 1.回声“开始睡眠” 2.睡眠120 3.回声“沉睡”

请注意,睡眠也是打印出来的!

如果我不想取消正在运行的脚本,该怎么办?我只想得到通知,它花费的时间比我预期的要多,这可能会导致发布管道的延迟完成。如果没有围绕构建步骤(如powershell脚本中的计时器)的自定义实现,这是不可能的。