2016年5月16日月曜日

[Jenkins] Promote builds で成果物を使う

今回は Promoted Builds Plugin を使った「昇格」ビルドの時に成果物を参照して、サーバーにアップしたり、バックアップを取ったりなど、任意の処理をさせる方法を紹介します。

自作テスティングフレームワークの iutest のリリースをする際には、Jenkins でパッケージを作成して、その成果物をアップしています。
現状、このアップロードの作業は手作業で行っているのですが、これを自動化するための第一歩として今回の方法を使いたいと思っています。

Promoted Builds Plugin
iutest ではリリースするパッケージが出来上がったら、Promote builds でそのジョブを「昇格」させています。
これは、のちのちリリースしたパッケージを参照したいときに分かりやすいようにするためです。
また、このときビルドを保存するようにもしています。

これは Promoted Builds Plugin で簡単にできます。
ジョブの設定画面を開き、「Promote builds when」のチェックを入れます。


今回は昇格トリガーを手動「Only when manualy approval」、ログを保存したいので、「Actions」に「Build Log Forever」を設定。


設定するとサイドバーに「Promotion Status」が表示されるので、そこを開いて実行します。

実行すると、ログが保存され、スターが付きます。



Promoted Builds Plugin について、だいたいどんなものか分かったと思いますので、成果物を扱う方法に移ります。

成果物を扱う
成果物を扱うために Copy Artifact Plugin を使います。
Promote builds のアクションに「他プロジェクトから成果物をコピー」が選べますので、それを追加します。

コピー元のプロジェクトは自身のジョブを設定、ビルドは「特定のビルド」を選択します。
公式ページ にも書いてありますが、永続リンク(permalink)に Promote builds で設定した名前が選べるようになっており、それを使うと昇格したビルドを参照できますが、今回は使いません。

ビルド番号の設定には、「${PROMOTED_ID}」を指定します。
BUILD_ID ではなく PROMOTED_ID です。
BUILD_ID は Promote build のビルド番号になります。PROMOTED_ID が Promote build を実行したビルドのビルド番号になります。
なので、コピーしたい成果物は PROMOTED_ID で取ることになります。

あとは、コピーしたい成果物のフィルターやダウンロードパスなどを設定してください。

これで Promote build のときに成果物を扱えるようになりますので、あとは好きにしちゃってください。

今回は以上です。

0 件のコメント:

コメントを投稿