Jenkinsを利用していると、実行済みのビルドがどんどん溜まっていってストレージを圧迫するため、定期的に古いビルドを削除する必要があります。
個別のビルドについては、ビルドの詳細ページから「Delete build ‘#xxx’」をクリックして削除できますが、一つ一つ実行するのは手間です。
そういう時はスクリプトコンソールを利用すると便利です。スクリプトコンソールは文字通りJenkins上でスクリプト(Groovy)を実行することができる機能で、「Jenkinsの管理」画面からアクセスすることができます。
特定のジョブのビルドをすべて削除する
jobName変数に削除したいジョブ名を設定し、次のスクリプトを実行します。
def jobName = "<ジョブ名>"
def job = Jenkins.instance.getItem(jobName)
job.getBuilds().each {
it.delete()
}
すべてのジョブについて古いビルドを削除する
MAX_BUILDS定数に、各ジョブにおいて残したい最新のビルドの数を設定し、次のスクリプトを実行します。
// 残すビルド数を設定
MAX_BUILDS = 20
for (job in Jenkins.instance.items) {
def recent = job.builds.limit(MAX_BUILDS)
for (build in job.builds) {
if (!recent.contains(build)) {
build.delete()
}
}
}