Open5

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 としておく必要がある。