kakudooo docs

Renovateについて調べた基本的な内容と、導入や設定をする中で事前に知っておきたかったことを備忘として残しておく。

Renovateとは?

Automated dependency updates. Multi-platform and multi-language.

複数のプラットフォームや言語に対応した、依存更新の自動化ツール。

Renovateの使いどころ

ユースケースとしては、以下の2点

参照: https://docs.renovatebot.com/getting-started/use-cases/

Development dependency updates

パッケージファイルの更新の仕組み

  1. パッケージファイルとその依存を見つけるためにリポジトリ内を走査する
  2. 新しいバージョンが存在するかどうかを確認する
  3. 利用可能なアップデートをPull Requestとして作成する

デフォルトだと、以下の設定になっている

lock fileの更新の仕組み

lock fileは、Package managerの実行によって更新される。(Renovate自体にはlock fileを作成する機能はないため)

以下は、例

  1. リポジトリにpackage.jsonpackage-lock.jsonがあり、ある依存モジュールがversion 1.0.0だとする
  2. そのモジュールの1.1.0が利用可能になる
  3. Renovateはまずpackage.jsonのバージョン指定を変更する
  4. npm installを実行する
  5. npmが依存関係を解決し、package-lock.jsonを更新する
  6. Renovateは両方のファイルをコミットしてPull Requestを作成する

DevOps tooling

RenovateとDependabotの違い

Dependabot

GitHub製のツールなので、GitHub上の機能として動作するところが売り。依存関係の更新ツールとしての機能はシンプル。

Renovate

Dependency Dashboard, Grouping機能, 対応Platformの多さ, カスタマイズ性など、コミュニティーベースで作られているからこその機能の豊富さが売り。

詳細な機能の比較はこちらを参照。

Renovateのはじめ方

実行環境の選択肢

以下の3種類の選択肢が提供されている。

参照: https://docs.renovatebot.com/getting-started/running/#running-renovate

リポジトリへのインストールと設定

Mend Renovate App (Mend社が提供するRenovateのホスティングサービス)を使うことで、セルフホストの手間を省いて使用を開始できる。 導入環境や構成によってセルフホストする必要があるかもしれないが、特に制約がなければまずはMend Renovate Appから使い始めてみるとよい。

インストールと設定の方法については、以下の公式ドキュメントを参照。

Installing and onboarding Renovate into repositories

最初に知っておくとよいこと

公式 I don’t know where to start + α