配置Discard old builds选项
Jenkins 提供了“Discard old builds”的选项可以配置保留几天/最多几个的build 和 artifacts,缺省这个选项不会勾上。不勾选时,默认值为365,显然这个值过大了。
打开一个Jenkins job的Configure页面,勾选上”Discard old builds”,填入Day of keep builds (保留几天的build记录)和Max# of builds to keep (保留最多几个build记录)。
点击Advanced按钮,还可以填入Days of keep artifacts (保留几天的artifact)和 Max# of builds to keep with artifacts (保留最多几个artifacts)。
通常来讲,如果磁盘空间足够,这4个选项设置为15就可以了(也就是两周 + 1天)。
如果磁盘空间不足时,可以将这4个选项都设置为3。
Jenkins job在每次build结束后(无论成功还是失败)都会自动执行discard old builds,这样当下次执行build后,这个job占用的磁盘空间就会被释放。
用Configuration Slicing插件批量配置Discard old builds选项
如果已经配置了很多Jenkins job,逐个来修改Discard old builds,非常费时费力。好在Jenkins有Configuration Slicing plugin可以批量来配置Jenkins job。
安装好 Configuration Slicing plugin 后,重启Jenkins。
(离线安装参考另一个blog)
然后打开Manage Jenkins -> Configuration Slicing,分别打开以下菜单,在左边的“Configured Value”中填入新的值。
- Discard Old Builds Slicer - Days to keep artifacts
- Discard Old Builds Slicer - Days to keep builds
- Discard Old Builds Slicer - Max # of builds to keep
- Discard Old Builds Slicer - Max # of builds to keep with artifacts
比如要配置“Days to keep artifacts”为3天,就在对应Job的那一行的左边的”Configured Value”填入3。
打开Jenkins job的Configure页面,可以看到”Discard old builds”选项的值已经被修改。
在Jenkins Server上手工删除旧的build
如果想立即释放磁盘空间,可以在Jenkins Server上手工删除旧的build。
比如在$JENKINS_HOME/jobs/[JOB_NAME]/builds
删除里面的记录
$JENKINS_HOME/jobs/[JOB_NAME]/
modules 也可以删除