2015-09-28 76 views
1

我们有一个Jenkins作业,其中生成了html报告并放置在工作区/报告中。我们一直在使用“Workspace Cleanup Plugin”,所以我们只能保留最后一份报告。我们希望保留过去X天内创建的报告并删除旧报告。有没有一种方法或插件可以自动执行此操作?在Jenkins工作区中删除超过X天的文件

回答

2

这并不是东西放在工作的自己的工作区为需要稍后访问的存档是个好主意。有人可能会最终清理工作区(无论是手动还是通过jenkins预制或后制作步骤),并且您的所有珍贵数据和统计信息都将消失。

我建议使用不同的目录发布报告,然后在其中手动运行清理。你不妨定义詹金斯全局参数(plugin)如REPORT_ROOT=/home/${USER}/reports,并用它在工作配置到HTML报告保存到${REPORT_ROOT}/${JOB_NAME}

清理你想运行find ${REPORT_ROOT} -type f -mtime +2 -delete前提是对每个单独创建无父目录报告。这可以在单独的作业中运行,也可以作为发布html报告的作业的子项目或在作业本身中运行。 -mtime +2表示2天以上。

如果每个版本都有它自己的目录比清理HTML报告会find ${REPORT_ROOT}/${JOB_NAME} -type d -mtime +2 -delete

+0

感谢您的回答。由于我们并不关心数据(客户只是想“看到更少的文件”,并且只能找到“最近10天内的报告”),我们跳过了插件安装,只是添加了 find $ {WORKSPACE }/reports/-type f -mtime +10 -delete 在Execute shell的后续步骤中。 – ASPR

1

使用PeriodicBackupPlugin

它有助于定期取回数据备份,并具有一个BackupExecutor,用于检查每个位置的现有备份,并删除比配置中定义的X天数早的备份数。

查看图像了解配置信息。

enter image description here

相关问题