Renovate備忘録
Renovate を GitHub.com で使うためのいろいろな備忘録。
Renovate を使ってほぼ完全自動で依存パッケージをアップデートする: https://zenn.dev/book000/articles/renovate-dep-auto-update
自作テンプレート(Shareable Config Presets)
設定ファイルのテンプレートを作ってリポジトリに格納しておくことで、ほかのリポジトリから呼び出すことができる
自分の場合は以下のような設定ファイルを作って
パブリックリポジトリとプライベートリポジトリでテンプレートにかぶせる形でいくつか設定を追加するようにしている
Dockerfile でバージョンを示す環境変数を自動更新する
以下のように、Dockerfileで環境変数を定義してパッケージのバージョンを管理することがある。
しかし、この記述をRenovateに認識してもらわないと自動更新できない。
以下の記述をRenovateの設定 regexManagers
に追加し、環境変数行の前に # renovate datasource=<データソース> depName=<パッケージ名>
と書くとうまく動く。
参考
公式がプリセットを出してた:
Dockerfile で Node.js のバージョンを LTS のままにしておきたい
FROM node:20-alpine
としておくと、LTSをガン無視して最新バージョンに更新される。
.node-version などと統一感がなくなるので、よくない。
これを解決するためには、以下を regexManagers と packageRules に書く。
参考
platformAutomerge と automerge
GitHub のオートマージ機能 と、GitHub のブランチ保護ルール を使うことで、CI が正常終了したあとに自動マージすることができる。
これを Renovate でも使うのが platformAutomerge
オプションっぽい。
automerge
は GitHub のオートマージ機能を使わずに Renovate 単体で自動マージをする。
- https://docs.renovatebot.com/configuration-options/#automerge
- https://docs.renovatebot.com/configuration-options/#platformautomerge
GitHub Free (含む GitHub Free Organization)では、プライベートリポジトリにおいて GitHub のオートマージ機能とブランチ保護ルールを利用できない。
この状態で、Renovate の automerge
と platformAutomerge
を両方 true にしていると、いつまで経ってもマージされないらしい。
したがって、プライベートリポジトリでは automerge
は true、platformAutomerge
は false としておく必要がある。
Renovate設定ファイルのマイグレーション
Renovateのアップデートにより、設定名が変わることがある。
これらは configMigration というオプションをオンにすることで、自動的に設定ファイルも更新が行われるようになる。
割と後方互換性があるので設定ファイルの更新が行われなくてもそこまで問題にはならないが、オンにしておいても良さそう。