<~2015>Jenkinsのプラグイン「Discard Old Build plugin」を公開しました!
SHIFTではお客様の開発環境にJenkinsを導入し、CI環境を構築・運用するお手伝いをしています。Jenkinsには600を超えるプラグインがありますので大抵のことは実現できるのですが、時々お客様のご要望を直接解決できる機能が存在しないという場合もあります。
今回はそういった場面に際して新しいプラグインを作成して公開しましたので、ご紹介いたします。
ビルド履歴を適宜削除したい
リリース成果物を作ったり、テスト中に作成したキャプチャ画像を保存したりするようなジョブでは、Jenkinsサーバのディスク容量を圧迫しないために古いビルドを破棄したくなる場合があります。Jenkinsにはデフォルトで「古いビルドの破棄」という機能があり、「直近1週間以内のビルドだけを保持する」「直近15個のビルドだけを保持する」といった設定が可能です。
さらに、最新の成功ビルドに関しては無条件で保存されるようになっています。
「確実に使えるビルドを残しておく」という観点ですとこの機能は有効なのですが、テスト会社である弊社から見ますとどちらかと言えばテストに失敗したビルドを解析のために残しておきたいという場合があります。また、古いビルドを全部残しておく必要はないけれど頻度を落として少しは残しておきたいという場合もあります。
そんな要求に応えるために作ったのが「Discard Old Build plugin」です。
Discard Old Build pluginの内容
このプラグインをインストールすると、ジョブの設定画面の「ビルド後の手順」の中に「古いビルドの破棄」という項目が現れます。
最初の2項目はJenkinsのデフォルトの機能と全く同じで、ビルドを保存する日数と個数を設定することができます。新しく追加されているのはステータスを選ぶチェックボックスです。ここで何もチェックしなければすべてのステータスの履歴が、1つ以上チェックすればチェックされたステータスの履歴だけが保存されるようになります。
「高度な設定…」ボタンを押すと、さらに設定項目が追加で現れます。
ここでは、上の設定で「破棄」と判断された古いビルドのうちどれを残すかというポリシーを決めることができます。設定できる項目は
・ビルドの保存間隔(日数)
・ビルドの保存間隔(個数)
・保存するステータス
の3つです。
この設定と上の基本的な設定を組み合わせることで、以下のような設定が可能です。
【例1】
直近10個のビルドは必ず残し、それより古いものについては15ビルド毎に1個ずつ残す設定です。
【例2】
直近30日間のビルドは必ず残し、それよりも古いものについては不安定・失敗のビルドのみ残す設定です。
最後に
似たような機能を持つプラグインとして非常に高機能な「Build Keeper Plugin」がありますが、よりお手軽に&日本語で使えるものとして新しいプラグインを作成しご紹介しました。
Jenkinsのプラグインの機構はとても洗練されており、ほんの少しのコードを書くだけで簡単にプラグインを作成することができます。今回のプラグインも、Javaで書いたロジックは1クラスだけでした。ただ、既存のソースコードが膨大なので何かを変えようと思ったときにどんなコードを書けば良いのかを調べるのには少しコツがいります。
その辺りについて、次回の記事でご紹介したいと思います。
お問合せはお気軽に
https://service.shiftinc.jp/contact/
SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/
SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/
SHIFTの導入事例
https://service.shiftinc.jp/case/
お役立ち資料はこちら
https://service.shiftinc.jp/resources/
SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/