🌊

RenovateをiOSアプリに最小構成で導入する

2022/09/11に公開

Renovateとは

Renovateは、ライブラリの依存関係の更新を自動化するツールです。

Renovateを導入することで、RenovateがOSSライブラリの更新してくれたPRを自動で出してくれます。

Renovateは現在(2022/09/11)、CocoaPods、Package.swift、Mintに対応しています。

RenovateをiOSアプリに最小構成で導入する

構成要素

  • ホスト先: Mend
  • インストール方法: Github App
  • 料金: 無料

インストールするとConfigure RenovateというPRが作成されます。

最初のPRでは、renovate.jsonが作成されます。

Renovateが作成した最初のPRをマージすると、Renovateが実行するようになります。

Renovateが作成したrenovate.jsonをそのまま使用しても良いですが、ライブラリのグルーピングや同時に作成できるPR数を制限するとさらに良いです。

CocoaPodsを使用している場合、1度に複数のPRが作成されてしまうと、チェックサム値でコンフリクトが発生してしまいます。

そこで今回は、Renovateが作成できるOpenなPR数を1にしています。

renovate.json
{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "extends": ["config:base", ":timezone(Asia/Tokyo)"],
  "labels": ["dependencies", "renovate"],
  "enabled": true,
  "automerge": false,
  "branchPrefix": "renovate/",
  "separateMajorMinor": true,
  "separateMultipleMajor": true,
  "prCreation": "immediate",
  "prHourlyLimit": 0,
  "baseBranches": ["main"],
  "prConcurrentLimit": 1,
  "reviewers": [
    "coffmark"
  ],
  "vulnerabilityAlerts":{
    "enabled": true
  },
  "dependencyDashboard": true,
  "packageRules": [
    {
      "groupName": "RxSwift",
      "managers": ["cocoapods"],
      "packageNames": [
        "RxSwift",
        "RxCocoa",
        "RxRelay",
        "RxTest",
        "RxBlocking"
      ]
    }
  ]
}

また、Mend DashboardではRenovateの実行ログを見ることができます。

参考文献

https://ikesyo.hatenablog.com/entry/potatotips-77-renovate-for-ios

https://tech.dely.jp/entry/2020/12/04/102515

Discussion