生産性向上ブログ@miyajan

圧倒的生産性向上を目指すエンジニアのためのブログ

Jenkins 2.19.1リリース

jenkins.io

Jenkinsの最新LTSである2.19.1がリリースされたので、それについてまとめる。

LTS

LTS Release Line - Jenkins - Jenkins Wiki

そもそもJenkinsのLTSとはなにかという話をまとめる。LTSはLong-Term Supportの略で、より安定して運用したいユーザー向けの変更頻度少なめで重要な不具合改修のみ取り込むバージョンのこと。

Jenkinsの場合、ほぼ毎週更新されるWeekly Releaseと、12週間(約3ヶ月)に1回更新されるLTS Releaseの2種類のリリースラインが存在する。LTSはUbuntuなどにもある仕組みだけど、そちらは2年に1回のペース。OSと比べるのもちょっと違うだろうけど、JenkinsのLTSはstable版くらいの意味合いだと思っておくのがよさそう。

LTSの最初のバージョンは、X.Y.1となる。これは、ベースとなるX.Yに不具合改修などのパッチを当てたバージョンになる。12週間後の次のバージョンまでの間に、4週間に1回マイナーアップデートがある。X.Y.2、X.Y.3…というバージョン名でリリースされる。Changelogを見る限りではこれらのリリース間隔はそこまで厳密でもないようだけど、だいたい2〜3回くらいマイナーアップデートが行われることになる。

基本的には、Weekly Releaseは最新の機能を試したい人やJenkins開発者向けで、通常の製品開発に利用する分にはLTSを利用する方がよさそう。

Upgrade Guide

jenkins.io

Jenkins 2になってからいつの間にかUpgrade Guideなるものが用意されている。主にJenkinsを運用している管理者向けに注意するべき変更をまとめてくれている。バージョンを上げる前にこれを読んでおくのがよさそう。

2.19.1では以下の修正が挙げられている。

  • プラグインの依存関係解決の修正
    • 以前のバージョンでは依存関係のあるプラグインが無効になっていてもJenkinsが動いていた
      • デバッグが難しくなる原因となっていた
    • 最新のバージョンではJenkinsの起動時に依存関係が正常でないプラグインは読み込まなくなっている
    • エラーはJenkinsのログに書き出されるのでアップグレードは注意すること
  • フォームの自動補完を無効化
    • ブラウザの戻るボタンを押して設定画面のフォームに戻ったときに間違った値が入力される問題があった
    • この問題を回避するためにほとんどすべてのフォームのフィールドで自動補完を無効化した
  • agentのプロトコル選択をセキュリティ設定に異動
    • agent(旧slave)と通信するプロトコルの有効/無効をグローバルセキュリティの設定画面で選択できるようにした
  • Java Web Start Launcherの非表示
    • グローバルセキュリティの設定画面でJNLPを有効にしないと表示されない

Docker Image

これを書いている時点では、Docker HubにあるJenkinsの公式リポジトリには2.19.1はまだアップロードされていない。2.19.1のDockerイメージがJenkinsの公式リポジトリにアップロードされている。

ちなみに、Docker HubにはWeekly Releaseのリポジトリも存在するので、手軽に最新版を試すことができるようになっている。

まとめ

Jenkinsの最新LTSである2.19.1について紹介した。特に機能的に大きな変更があるわけではないけど、User Guideは一通り目を通してからバージョンアップするのがよさそう。