FlutterプロジェクトにRenovateを導入する
FlutterプロジェクトにRenovateを導入したので備忘録として
1. 対象リポジトリにRenovateのGithub Appsを導入
手順に従って進めれば設定完了できるので詳細は割愛。
2. renovavte設定用のPRが生成される
GitHub Appsが連携されると画像のようなPRが生成される。
renovate.jsonという設定ファイルを更新するとチューニングが可能。 Renovate Docsのページを見ながら進めると良い。 設定項目によってはプラットフォーム未対応だったりや不要な項目もある。
3. 設定をチューニング
今回、設定した内容はこちら
"extends": [ "config:base" ], "timezone": "Asia/Tokyo", "lockFileMaintenance": { "enabled": true }, "labels": ["dependencies"] }
config:baseの内容
Renovateに用意されているPresetsで中身は以下の設定になっていた。
dependencyDashboard
v26.0.0から導入された新機能。 Github内にIssueが作られてRenovateで生成されたPRが可視化されるらしいが、試したプロジェクト上では動いていないっぽい。
semanticPrefixFixDepsChoreOthers
CommitがSemanticPrefixのFixとChoreだと引き継いでくれるってことかな?良くわからなかった。
ignoreModulesAndTests
モッジュールやテストのディレクトリのRenovateの管理対象外にする設定
autodetectPinVersions
バージョンの固定や範囲指定を維持する設定
prHourlyLimit2
PRを1時間に2つまでにする設定
prConcurrentLimit20
同時に開くPRは20までにする設定
group:monorepos
複数のpackageをまとめて依存関係の更新を管理する設定を引き継ぐ利用する Monorepo Presetsで対象の一覧がみれる
group:recommended
monorepoでないpagakeの複数のpackageをまとめて依存関係の更新を管理する設定を利用する
Group Presetsで対象の一覧がみれる
workarounds:all
ワークアラウンドの設定を引き継ぐ Workaround Presetsで対象の一覧が見れる
追加した設定
timezone
日本時間でRenovateを動作させる
lockFileMaintenance
lockfileのメンテナンス設定をしないと依存先の更新が合わせてされないので、手間がかかるらしい dartでは2021/08の時点では、まだ未対応ですが、対応が進んでいる様子。 feat: Add pub lockfile maintenance by jld3103 · Pull Request #11132 · renovatebot/renovate · GitHub
labels
PRに指定したラベルをつける。この場合はdependencies。
{ "extends": [ ":dependencyDashboard", ":semanticPrefixFixDepsChoreOthers", ":ignoreModulesAndTests", ":autodetectPinVersions", ":prHourlyLimit2", ":prConcurrentLimit20", "group:monorepos", "group:recommended", "workarounds:all" ] }
4. PRが飛んでくる
DartパッケージのPR
AndroidパッケージのPR
所感
DartとAndroidとiOSの依存関係を管理する必要があるFlutterプロジェクトでは導入しておいて損はなさそう。