Azure DevOps:管道失败后 运行 步

Azure DevOps: Run step after pipeline failed

有时我们的构建会失败。如果发生这种情况,则 workspace 不会被清理。新构建只会创建新工作 spaces,它会占用所有硬盘 space.

有没有办法在构建失败后清理工作space?

现在我有一个条件为 succeedOrFailed() 的清理步骤,但只有在手动取消构建时它才有效。如果构建由于缺少 HDD space 或超时而失败——清理步骤不是 运行.

我其实不需要清理。如果 TFS 代理只是重用旧工作 space 目录,那将是一个很好的解决方案,因为我的 YAML 中有 clean:all。但出于某种原因,它更喜欢创建新的。

我想我可以在 cron 中 运行 rm -rf,但是我需要知道什么时候没有人使用构建系统。

将条件指定为always()。无论管道 failed/succeded 还是被取消,它都会 运行 清理。这样工作 space 将始终清理,在成功构建后也是如此,从而最大限度地降低在代理

上退出 space 的风险

来自docs

Even if a previous dependency has failed, unless the run was canceled. Use succeededOrFailed() in the YAML for this condition.

Even if a previous dependency has failed, even if the run was canceled. Use always() in the YAML for this condition.

Only when a previous dependency has failed. Use failed() in the YAML for this condition.