TFS 为 运行 任务构建自定义条件 - 检查特定的先前任务是否失败
TFS build custom conditions for running a task - check if specific previous task has failed
TFS 构建允许为 运行 任务指定条件:reference。
我想定义的条件是:[按名称或其他方式寻址] 的特定任务失败。
这与 Only when a previous task has failed
类似,但我想指定之前的任务。
查看这些示例,我没有看到任何解决特定任务结果的条件,只有整个构建状态。
可能吗?有什么解决方法可以实现这一点?
对于这个要求似乎没有开箱即用的解决方案,但我可以想出(一个丑陋的:))解决方法。
假设您的特定任务(您检查其状态的任务)称为 A
。目标是仅在 A
失败时调用另一个构建任务(假设 B
)。
您可以执行以下操作:
- 定义一个custom build variable,将其命名为
task.A.status
并设置为success
- 创建另一个构建任务,例如
C
并安排在 A
之后;如果 A
失败,则仅将其设置为 运行 - 有一个标准条件
- 任务
C
应该只做一件事 - 将 task.A.status
构建变量设置为 'failure'(像这样,如果我们使用 PowerShell:Write-Host "##vso[task.setvariable variable=task.A.status]failure"
)
- 最后,任务
B
被安排在 C
和 is conditioned 到 运行 之后的某个时间,以防 task.A.status
等于 failure
,例如这个:eq(variables['task.A.status'], 'failure')
我的语法细节可能不正确,但您应该了解总体思路。希望对你有帮助。
TFS 构建允许为 运行 任务指定条件:reference。
我想定义的条件是:[按名称或其他方式寻址] 的特定任务失败。
这与 Only when a previous task has failed
类似,但我想指定之前的任务。
查看这些示例,我没有看到任何解决特定任务结果的条件,只有整个构建状态。
可能吗?有什么解决方法可以实现这一点?
对于这个要求似乎没有开箱即用的解决方案,但我可以想出(一个丑陋的:))解决方法。
假设您的特定任务(您检查其状态的任务)称为 A
。目标是仅在 A
失败时调用另一个构建任务(假设 B
)。
您可以执行以下操作:
- 定义一个custom build variable,将其命名为
task.A.status
并设置为success
- 创建另一个构建任务,例如
C
并安排在A
之后;如果A
失败,则仅将其设置为 运行 - 有一个标准条件 - 任务
C
应该只做一件事 - 将task.A.status
构建变量设置为 'failure'(像这样,如果我们使用 PowerShell:Write-Host "##vso[task.setvariable variable=task.A.status]failure"
) - 最后,任务
B
被安排在C
和 is conditioned 到 运行 之后的某个时间,以防task.A.status
等于failure
,例如这个:eq(variables['task.A.status'], 'failure')
我的语法细节可能不正确,但您应该了解总体思路。希望对你有帮助。