Open6

Renovate備忘録

TomachiTomachi

自作テンプレート(Shareable Config Presets)

設定ファイルのテンプレートを作ってリポジトリに格納しておくことで、ほかのリポジトリから呼び出すことができる

https://docs.renovatebot.com/config-presets/

自分の場合は以下のような設定ファイルを作って

https://github.com/book000/templates/blob/master/renovate/base.json

パブリックリポジトリとプライベートリポジトリでテンプレートにかぶせる形でいくつか設定を追加するようにしている

https://github.com/book000/templates/blob/master/renovate/public.json
https://github.com/book000/templates/blob/master/renovate/private.json

TomachiTomachi

Dockerfile でバージョンを示す環境変数を自動更新する

以下のように、Dockerfileで環境変数を定義してパッケージのバージョンを管理することがある。

https://github.com/tomacheese/fetch-youtube-bgm/blob/1603ffc79cd175a35e35c85abbf7ccd713fc65c0/downloader/Dockerfile#L47

しかし、この記述をRenovateに認識してもらわないと自動更新できない。

以下の記述をRenovateの設定 regexManagers に追加し、環境変数行の前に # renovate datasource=<データソース> depName=<パッケージ名> と書くとうまく動く。

https://github.com/book000/templates/blob/145c387f5fd959103183a5182cc13a99e17ddf77/renovate/base.json#L17-L23

参考

https://docs.renovatebot.com/modules/manager/regex/

公式がプリセットを出してた:

https://docs.renovatebot.com/presets-regexManagers/

TomachiTomachi

Dockerfile で Node.js のバージョンを LTS のままにしておきたい

FROM node:20-alpine としておくと、LTSをガン無視して最新バージョンに更新される。
.node-version などと統一感がなくなるので、よくない。

これを解決するためには、以下を regexManagers と packageRules に書く。

https://github.com/book000/templates/blob/145c387f5fd959103183a5182cc13a99e17ddf77/renovate/base.json#L10-L16
https://github.com/book000/templates/blob/145c387f5fd959103183a5182cc13a99e17ddf77/renovate/base.json#L26-L29

参考

https://blog.stenyan.jp/entry/2022/10/04/093438

TomachiTomachi

platformAutomerge と automerge

GitHub のオートマージ機能 と、GitHub のブランチ保護ルール を使うことで、CI が正常終了したあとに自動マージすることができる。

これを Renovate でも使うのが platformAutomerge オプションっぽい。
automerge は GitHub のオートマージ機能を使わずに Renovate 単体で自動マージをする。


GitHub Free (含む GitHub Free Organization)では、プライベートリポジトリにおいて GitHub のオートマージ機能とブランチ保護ルールを利用できない。

この状態で、Renovate の automergeplatformAutomerge を両方 true にしていると、いつまで経ってもマージされないらしい。

したがって、プライベートリポジトリでは automerge は true、platformAutomerge は false としておく必要がある。

TomachiTomachi

Renovate設定ファイルのマイグレーション

Renovateのアップデートにより、設定名が変わることがある。
これらは configMigration というオプションをオンにすることで、自動的に設定ファイルも更新が行われるようになる。
https://docs.renovatebot.com/configuration-options/#configmigration

割と後方互換性があるので設定ファイルの更新が行われなくてもそこまで問題にはならないが、オンにしておいても良さそう。