依存する npm パッケージのバージョンを上げ続けるために ci-npm-update を導入した

題の通りなんですが、導入。

プロジェクトが依存する npm パッケージのバージョンを上げるのを、忙しさにかまけてサボりがちになっていた。意識が低くてもいいかんじにできないかなぁ、と思っていたところ、ci-npm-update を見つけた。

GitHub - bitjourney/ci-npm-update: Keeps npm dependencies up-to-date, making pull-requests from CI

npm-shrinkwrap.json (Ruby の Bundler でいう Gemfile.lock に相当するもの) を再生成して差分があったら、GitHub に PullRequest を出してくれるコマンド。PullRequest には、パッケージのリポジトリCompare View の URL が書かれていて、バージョン間でどんな変更があったかすぐ確認できて便利。

今のところ、Jenkins で週に1回程度 ci-npm-update を実行するジョブを実行させて、差分を確認したり、自動化テストが通るか、手元で動かして問題ないか調べて、良さそうだったらマージ。その後、テストエンジニアの人が週に1回おこなっているリグレッションテストで問題がないか確認してもらっている。

ただ、package.json に書かれた範囲内でしかアップデートできないので、ライブラリのメジャーバージョンアップがあった場合は気づけないのが難点。それは半月に一回くらい、npm outdatednpm-check-updates の出力を通知したり、package.jsondependenciesdevDependencies を更新する PullRequest を出させると良いのかなぁ、とぼんやりと考えている。