【发布时间】:2019-07-18 11:18:30
【问题描述】:
在我的 Azure DevOps 发布管道中,我有一个 powershell 脚本,它向另一个应用程序发送 REST 请求,状态为“失败”或“成功”。
如果之前的任何作业失败,我希望状态发送“失败”。所以基本上是这样的:
if (($Agent -eq "Succeeded") -and ($LastJobsFailed -ne "true")) {
$change_status="successful"
}
else {
$change_status="failed"
}
现在我知道 Azure Devops 在某处使用此状态,因为您可以根据上次作业的结果指定作业是否开始。
作为一种解决方法,我将脚本复制了两次,状态为“成功”,并且仅在所有作业都成功时运行,反之亦然。但是我想在一个脚本中完成所有事情:)
所以我希望可以找到包含所有以前工作状态或其他内容的列表。 有人有什么想法吗?
谢谢!
【问题讨论】:
-
你有多少个阶段(环境)?
-
我不确定这是否适用。 powershell 命令的任何异常都保存在 $error 变量中。它实际上是一个对象数组,最新的例外是 $error[0]。您必须将其传送到 format-list -force 以查看所有属性。
-
@ShaykiAbramczyk 这里的用例是逻辑在一个由多个作业组成的暂存环境中运行。有点像下面 Lu Mike 的回答。
-
@Jay05 如果您只有一个阶段,您可以添加另一个带有一个任务的阶段来检查第一阶段的错误/成功。
标签: powershell azure-devops azure-pipelines-release-pipeline