【问题标题】:How to automatically cleanup a build agent working folder after a specific timespan如何在特定时间跨度后自动清理构建代理工作文件夹
【发布时间】:2012-08-27 20:29:36
【问题描述】:

如果工作区的最新访问日期早于一周 (f.i.),我想从我们的构建代理中自动清理工作文件夹。

我尝试了 tfs sidekicks(用于手动测试)和 tf 命令行,但我只删除了 tfs 数据库中的工作文件夹信息,而不是分配的构建代理文件夹中的物理文件夹。

感谢任何提示!

【问题讨论】:

    标签: tfs tfsbuild


    【解决方案1】:

    我们使用自定义 powershell 命令执行类似操作,从以前的版本中删除所有 exe 和映射文件。

    该命令在我们的 buildagent 上安排为每天运行。

    get-childitem e:\ -recurse -include *.exe,*.map | where-object {$_.directory -match "e:\\Build\\[0-9]" } | where-object {$_.lastwritetime -le (get-date).addDays(-7)} | del
    

    细分

    从e:盘获取所有exe和map文件

    get-childitem e:\ -recurse -include *.exe,*.map 
    

    文件夹结构与我们的构建文件夹匹配的地方

    where-object {$_.directory -match "e:\\Build\\[0-9]" } 
    

    最后一次写入时间为 7 天前

    where-object {$_.lastwritetime -le (get-date).addDays(-7)} 
    

    删除文件

    del
    

    【讨论】:

    • 您的命令仅适用于文件系统?您不使用 tfs 命令并且不同步引用工作区?效果很好 - 没问题?
    • 目前还没有,但我们几个月前才开始使用 TFS。我最初认为构建保留策略会清理我们的构建代理,但不知何故它似乎并没有那样工作(我的理解是错误的或者我们的实现是错误的......)。该脚本是作为快速修复创建的,直到我们有时间进一步调查。
    • 很棒的脚本,但是如果像我一样,你得到“没有足够的权限”,请确保你“以管理员身份”运行 PowerShell。如果仍有问题,请在此脚本末尾添加“-force”
    猜你喜欢
    • 1970-01-01
    • 2018-05-18
    • 2014-10-05
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    相关资源
    最近更新 更多