Jenkins Multibranch Pipeline の成果物の保存数を指定する

問題点

Muitibranch Pipeline のプロジェクトを利用すると、ブランチごとにジョブが作成される。

f:id:kimulla:20191201192902p:plain

このとき、デフォルトだと、各ブランチごとの成果物の保存数は上限がない。 そのため、成果物がどんどん溜まってしまい、ディスクフルを起こす可能性がある。

f:id:kimulla:20191201192918p:plain

解決方法

各ブランチごとの成果物の保存数を指定するには、Jenkinsfile内で以下のように指定する。 (Scripted Pipeline, Jenkins 2.60.3で動作確認)

node {
  properties([[$class: 'BuildDiscarderProperty',
    strategy: [$class: 'LogRotator',
      numToKeepStr: '5', artifactNumToKeepStr: '5']
  ]])

  print "build..."
}

すると、成果物の保存数の上限を超えたものは削除される。

f:id:kimulla:20191201192939p:plain

ハマりポイント

Muitlbranch Pipelineの「設定」で「古いアイテムを削除」という項目がある。 が、これは「不要になったブランチを指定した保存数だけ残す」という意味であるため、注意。

f:id:kimulla:20191201193024p:plain

試しに実施してみると、

task4ブランチを削除すると、不要になったブランチとして打消し線が入る。

f:id:kimulla:20191201193110p:plain

もうひとつブランチを削除すると、保存数を超えるので削除される。

f:id:kimulla:20191201193202p:plain

参考