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.
有时我们的构建会失败。如果发生这种情况,则 workspace 不会被清理。新构建只会创建新工作 spaces,它会占用所有硬盘 space.
有没有办法在构建失败后清理工作space?
现在我有一个条件为 succeedOrFailed()
的清理步骤,但只有在手动取消构建时它才有效。如果构建由于缺少 HDD space 或超时而失败——清理步骤不是 运行.
我其实不需要清理。如果 TFS 代理只是重用旧工作 space 目录,那将是一个很好的解决方案,因为我的 YAML
中有 clean:all
。但出于某种原因,它更喜欢创建新的。
我想我可以在 cron
中 运行 rm -rf
,但是我需要知道什么时候没有人使用构建系统。
将条件指定为always()
。无论管道 failed/succeded 还是被取消,它都会 运行 清理。这样工作 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.