Last updated on

Renovateを導入した


イントロ

GitLabで管理しているプロジェクトの依存パッケージ更新の効率化のために、Renovateを導入しました。 せっかく導入を主導したのでここに記録として残しておこうと思います。

Renovateとは

依存パッケージの自動アップデートを行うツールです。 Dockerイメージが提供されているので、CI等で利用することが可能です。

導入の経緯

パッケージのEOLを迎えるなど、特別な事情がない限りはアップデートは行われない状況でした。 GitLab CIが導入され、Runnerをスポットインスタンスで自動スケーリングするようになったことでCIによる定型ジョブを実行する環境が整ったところに、 Laravel10からLaravel11へのアップグレードや各種依存ライブラリの更新対応を行うタイミングが重なり、 対応コストが少なくて済むようにパッケージの更新を検知して都度アップデートを行う判断に至り、ツールの選定を始めました。

ツール選定

もともと、個人開発ではGitHub上でDependabotを使用しており、似たようなツールとしてRenovateがあることを知っていました。 リポジトリをセルフホストのGitLabで管理しているため、Dependabotに比べてRenovateの方が導入が簡易的に済みそうだと判断しました。

Renovateで設定した内容

GitLab CIでスケジュールを組み、定時実行されるように設定しました。 npmとcomposerで管理するパッケージを更新するように設定し、GitLabのトークンとGitHubのトークンを取得してそれぞれCICDの変数として登録することで利用可能です。

導入した結果

まだ数回のパッケージの更新しか行っていませんが、対応コストが大きく下がったことで気軽に更新が行えています。 テストを自動化していることもあり、Renovateが作成したパッケージの更新のMRによってCIが自動的にテストを行い、失敗・成功がすぐにわかり非常に体験が良いです。 今後参加するプロジェクトではリポジトリを作ったらすぐに入れるぐらいに布教していきたいと思います。