Azure devops Azure DevOps管道代理如何干净地重新启动自身?

Azure devops Azure DevOps管道代理如何干净地重新启动自身?,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,为了简单起见,我们有一个Azure Devops管道,其中代理在应用程序节点上运行。我们在升级.net framework的阶段中添加了一项任务,这需要重新启动。但是,当机器在部署过程中重新启动时,部署代理进程将被终止,并且阶段无法完成。管道知道发生了重新启动,并且在后续任务中重新启动之前,它在阶段上又运行了一个任务 Job issues 1 error 1 warning Operating system is shutting down for computer '(redacted)'

为了简单起见,我们有一个Azure Devops管道,其中代理在应用程序节点上运行。我们在升级.net framework的阶段中添加了一项任务,这需要重新启动。但是,当机器在部署过程中重新启动时,部署代理进程将被终止,并且阶段无法完成。管道知道发生了重新启动,并且在后续任务中重新启动之前,它在阶段上又运行了一个任务

Job issues
1 error
1 warning
Operating system is shutting down for computer '(redacted)'
我们重新部署了该阶段,.net安装任务检测到它已经是最新的,并跳过了重新启动,该阶段这次成功完成

是否有一种干净的方法来创建一个任务来重新启动计算机,并等待重新启动完成才能恢复阶段部署

是否有一种干净的方法可以创建一个任务来重新启动计算机,并等待重新启动完成后再继续阶段部署

恐怕没有这样一种干净的方法可以创建一个任务来重新启动机器,并在此时等待重新启动完成以恢复阶段部署

github上有一篇关于它的帖子,但是github操作bot用stale标记关闭它。现在,新用户在我们的主要论坛上发表产品建议:

你可以投票并在该帖子上添加你的评论

此外,我们都知道代理在重新启动后将恢复到干净的队列,因此在重新启动后很难继续使用当前代理

如果我们使用private agent,我们有三种解决方案:

  • 直接的方法是直接在私有代理机器上安装.net framework(如果您有不同的代理机器,此方法可能不合适)

  • 在部署后条件下使用自动重新部署触发器:

  • 在重新启动代理之前,添加要调用的内联powershell任务。我们需要设置使用指定代理的需求,以便新的发布管道将等待代理重新启动完成