沖永凌のブログ

株式会社ARTISAN, 現場Hub, SaaS開発, スタートアップ, CTO

Renovateで言語・パッケージのバージョンを最新に保つ

Renovateとは

GitHub Apps - Renovate · GitHub

Repository内のパッケージマネージャのファイルを検査し、記載したパッケージのバージョンが新しくなる度にPRを作成するアプリケーションでです。

ほとんどの言語に対応しています。

得られる恩恵

設定ファイルでPR作成頻度やPRのまとまりを定義でき、アップデートを定型業務化できます。

また定期的にアップデートすることで、

  • アップデートのコストが下がる
  • 時々、発生していたbugが解消される

という恩恵が受けられます。

設定ファイル例

React×Typescriptのプロジェクトの場合

設定方針

  • 毎週金曜日朝にPR作成
  • マイナー・パッチバージョンは1つにまとめてPR作成
  • Node, Typescriptは別途PR作成
{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "extends": ["config:base"],
  "timezone": "Asia/Tokyo",
  "automerge": false,
  "prHourlyLimit": 0,
  "schedule": ["after 8am on friday", "before 10am on friday"],
  "dependencyDashboard": true,
  "packageRules": [
    {
      "groupName": "Minor and Patch Dependencies",
      "matchUpdateTypes": ["minor", "patch"]
    },
    {
      "groupName": "Node Version",
      "matchUpdateTypes": ["minor", "patch"],
      "matchPackageNames": ["node", "node-version"]
    },
    {
      "groupName": "Typescript Version",
      "matchUpdateTypes": ["minor", "patch"],
      "matchPackageNames": ["typescript"]
    }
  ]
}

この設定で毎週金曜日午前に、

  • メジャーバージョンの更新(破壊的変更あり)は、パッケージごとにPR作成
  • マイナー/パッチバージョンの更新は、Node, Typescript, その他 それぞれ1つずつPR作成

が行われます。

是非お試しください。