VSTS - 有没有办法只在特定任务失败时运行任务?

dar*_*n25 5 azure-devops

我需要在我的构建定义中运行发布任务,但前提是某个任务失败之前。如果其他任务通过,我希望它被忽略并且不运行。

有没有办法做到这一点?

我希望我可以根据任务成功设置一个输出变量,然后在自定义条件中使用该变量在任务失败时运行该任务。

如果任务失败,我看不到如何设置输出变量。这可能吗?

Sha*_*zyk 5

  • 在任务设置中展开“控制选项”
  • 选择“运行此任务”- Only when a previous task has failed

在此输入图像描述

如果您只想在最后一个/特定任务失败时运行该任务:

假设您的特定任务(您检查其状态的任务)称为AB目标是仅在失败时调用另一个构建任务(假设) A

  • 定义一个自定义构建变量,调用它task.A.status并设置为success
  • 创建另一个构建任务,例如C并将其安排在之后A;使其仅在A失败时运行 - 有一个标准条件
  • 该任务C应该只做一件事 - 将task.A.status构建变量设置为“失败”(就像这样,如果我们正在谈论 PowerShell Write-Host "##vso[task.setvariable variable=task.A.status]failure":)
  • 最后,该任务B被安排在之后的某个时间C,并有条件task.A.status在equals 的情况下运行failure,如下所示:eq(variables['task.A.status'], 'failure')

在此输入图像描述

  • 嘿,如果“A”失败,运行任务“C”的条件是什么?你所说的具体条件是什么?我看到“仅当上一个任务失败时”的选项。因此,失败的可能是“C”之上的任何任务,而不仅仅是“A”。 (2认同)
  • @ShaykiAbramczyk 即使使用“自定义条件”,似乎也没有任何标准功能来检查“上一个”任务是否失败。不确定这个答案是否有效。 (2认同)