GRIPHONE Advent Calendar 2018 5日目の記事を担当します鑓水です。
今回は弊社で使っているJenkinsのおすすめプラグインを紹介します。
※この記事はGRIPHONE Advent Calendar 2018 5日目の記事です。
https://qiita.com/advent-calendar/2018/griphone
https://adventar.org/calendars/3147
なぜ今Jenkinsなのか
この記事を見たみなさん誰しもが思うはずです。
なぜ今さらJenkinsの話をするのか、と。
時は2018年。今ではCI(継続的インテグレーション)ツールといえばTravis CIやCircle CIといったクラウド型のCIツールが導入と運用保守の観点でデファクトスタンダードとなりつつあります。
技術に敏感な人なら上記二つのツールすら古いように感じるかもしれません。
弊社でも長年使用していたJenkinsからCircleCIに乗り換えようとしています。
常に新しい技術にチャレンジする素晴らしい組織なのです。
でも、ちょっと待ってください。何かを忘れていませんか。
Jenkinsを利用している組織は必ず複雑なジョブを作り続ける職人のような人、いわゆる「Jenkinsおじさん」がいたはずです。
そうです。何を隠そう私がJenkinsおじさんなのです。
この記事はJenkinsの魅力を最後に伝えようというJenkinsおじさんからの熱いメッセージなのです。
「Jenkinsさん聞こえますか?オレ達から貴方への鎮魂曲(レクイエム)です」
やっぱこれだね!Jenkinsプラグイン3選
いよいよ本編ですが、ここからはサクッと行きます笑
Job Configuration History Plugin
https://wiki.jenkins.io/display/JENKINS/JobConfigHistory+Plugin
これはド定番のプラグインですね。
ジョブの左メニューに「設定の変更履歴」が表示されます。
ここから変更履歴がxml形式で差分が色付きで表示されます。
よく設定変更してジョブが動かなくなった!って事ありますよね。
そうした場合は履歴差分から元に戻せるのでこのプラグインは必須です。
Run Condition Plugin
https://wiki.jenkins.io/display/JENKINS/Run+Condition+Plugin
GitHubなどのレポジトリに特定のブランチをpushした時だけデプロイしたい時ってありますよね。
そういう時に使えるのがこのプラグイン。
簡単にいうとビルドのトリガーの条件分岐が簡単に設定できるようになります。
ビルドの項目から「ビルド手順の追加」→ 「Conditional step (single)」を選択します。
「Run?」の項目を「Regular expression match」に設定すると正規表現を用いて条件分岐できます。「Expression」に正規表現を、「Label」に対象の変数を指定してください。
画像では「Git Plugin」で設定したGitリポジトリでポーリングして取得したブランチが「master」プランチかどうかを判定し、masterであれば「test-build-deploy-pipeline」というジョブを走らせるという設定をしています。下流ジョブである「test-build-deploy-pipeline」にパラメータが必要な場合は「Predifined parameters」に指定することもできます。
GitHubのWebhookやGitリポジトリからのポーリングと併用することで様々な要件に対応することがでるのでオススメです。
Simple Theme Plugin
https://wiki.jenkins.io/display/JENKINS/Simple+Theme+Plugin
最後はこのプラグイン。Jenkinsのテーマを変更できます。テーマ変更だけかよって思いますが、意外と、これ、重要。
例えば以下のサイトからCSSファイルをダウンロードしてきます
http://afonsof.com/jenkins-material-theme/
プラグインを入れると「Jenkinsの管理」→「システムの設定」に「Theme」が追加されているので、CSSのURLを設定します。保存すれば完了。
これを利用して左上のJenkinsのおじさんの画像を自分好みに設定できます。
もしプロジェクトで複数Jennkinsを使うといった場合にテーマを分けておいたりすると、視覚的に判別がついたりするので便利です。
最後に
ここで紹介したのは基本的ではありますが、めちゃめちゃ便利なプラグイン達です。
さらばJenkinsみたいな感じで書きましたが、実際問題今後もCIツールを選定する際にJenkinsが候補から外れることはないでしょう。
運用保守の難度に勝る自由度と魅力がそこにはあるのです。
Jenkinsがこの世にあり続ける限り私はJenkinsと共に走り続けます。