ホームページのパッケージ更新をrenovateに移した

2020-05-09#meta

以前までこのホームページで使っているnpm packageのバージョン更新をdependabotで自動化していたが、最近renovateを使うようになった。

Netlifyで無料分を使い切った

あるとき、Netlifyから数ドルほど請求されていることに気づいた。このホームページはNetlifyでホスティングしているのだけど、どうやらビルド時間の上限を超えた分が請求されたらしい。

Build minutesのページを見てみた。

確かに、極端にビルド時間がかかっている日がある。

原因はdependabotからのパッケージ更新のPull requestごとにNetlifyでビルドをおこなっていることだった。dependabotは更新があったパッケージごとにPull requestを作るため、大量のPull requestが作られてしまう。Pull requestのグループ化を要望するはたくさんあるが、まだ実現されてなさそうだ。

renovateへの移行

そこで、renovateという別のパッケージ更新サービスを使ってみることにした。

dependabotと同様にGitHubで簡単に連携できた。設定ファイルは、config:base presetを使うような雰囲気だったけど、どういった設定なのか不透明なのが気持ち悪かったので中身を調べて自分にとって必要な設定にした。

{
  "schedule": ["on friday"],
  "ignorePaths": ["**/node_modules/**"],
  "packageRules": [
    {
      "updateTypes": ["minor", "patch"],
      "groupName": "all minor dependencies",
      "automerge": true
    }
  ]
}

これで、Pull requestが送られる頻度がかなり抑えられたので、Netlifyでビルドする時間も劇的に減った。