Renovate の Regex Manager で .tool-versions に書かれた Terraform と Node.js のバージョン管理をする

1. この記事を書こうと思った背景 パッケージのバージョン管理をするとなったときに真っ先に思い浮かぶツールは Renovate だが、なんと .tool-versions のマネージャーが提供されていなかった。 Managers - Renovate Docs で挙げられている dockerfile などはマネージャーが提供されており、たとえば、Dockerfile の場合、デフォルトで以下の書式の Dockerfile に書かれたコンテナイメージのバージョン管理が major を除いてできる。1 (^|/|.)Dockerfile$ (^|/)Dockerfile[^/]*$ さて、マネージャーが提供されていない .tool-versions に書かれた言語やツールのバージョン管理をどうすればよいだろうか? 結論から言うと、Regex Manager で .tool-versions から更新管理したいものを指定(キャプチャ)すればよかった。 この記事では、具体的にどうやったか?その設定をするためにどう調べたか?書いていきたい。 2. 前提 2-1. 2022/08/01 時点でのワークアラウンドな方法であること 以下の issue で議論されているように、以前から .tool-versions をサポートしてほしいという声はあがっている。そのため、この記事で書かれていることは、あくまでも 2022/08/01 時点でのワークアラウンドな方法であることとしたい。 Upgrade versions in .tool-versions #4051 2-2. .tool-versions で管理しているもの .tool-versions で管理しているものは、Terraform と Node.js $ cat .tool-versions terraform 1.0.0 nodejs 16.15.0 3. 環境情報 Renovate の実行環境は GitHub App 4. renovate.json5 の設定内容抜粋 regexManagers で .tool-versions に書かれた Terraform や Node.js の現バージョンをキャプチャする。 ...

August 2, 2022 · 3 min · gkzz

Renovate を個人リポジトリで小さく始めたい初心者備忘録

1.この記事を書こうと思った背景 今更感満載だけれど、パッケージの依存関係の更新ツールである Renovate について理解が浅いと感じることがあった。とりわけ、Presets や Config の書き方については見様見真似でやってしまっている感が否めなかった。 そこで、表題のとおり、Renovate を個人リポジトリで小さく始めながら 、Renovate を触っていく上で押さえておきたい点について、この記事に書き留めていきたい。 2.前提と環境情報 Renovate の platform は https://github.com とし、GitHub App で運用する。Renovate の導入手順は Installing & Onboarding - Renovate Docs を参考にした。 また、Renovate で指定する更新方法のことを Config と書いておく。というのも 設定 と日本語で書いてしまうと一般的な「設定」と、Config のうち、どちらを指して書いているのか、区別することが難しいためである。 3.スタート地点としての [“config:base”] Renovate の Config は 設定ファイルに書いていくのだが、公開されている Presets(Config Presets) を使うこともできる。 たとえば、Shareable Config Presets - Renovate Docs | Renovate Docs で紹介されている、extends: [“config:base”] を指定するだけでも Renovate を使うことができる。 $ cat renovate.json5 { extends: ["config:base"], timezone: "Asia/Tokyo" } ※ renovate.json5 はコメントが書ける renovate.json のようなもの。詳細は、5-4.Renovate の設定ファイルにコメントを書きたい を参照。 ...

June 8, 2022 · 4 min · gkzz