Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RenovateをiOSアプリ開発に導入・運用した話
Search
coffmark
November 29, 2022
Programming
0
420
RenovateをiOSアプリ開発に導入・運用した話
Mobile勉強会 Wantedly × チームラボ #7 で発表しました
https://wantedly.connpass.com/event/266081/
coffmark
November 29, 2022
Tweet
Share
More Decks by coffmark
See All by coffmark
Swift Concurrencyを利用したMVVMについて考える
coffmark
1
420
Other Decks in Programming
See All in Programming
Performance for Conversion! 分散トレーシングでボトルネックを 特定せよ
inetand
0
3.4k
ぬるぬる動かせ! Riveでアニメーション実装🐾
kno3a87
1
230
@Environment(\.keyPath)那么好我不允许你们不知道! / atEnvironment keyPath is so good and you should know it!
lovee
0
130
Deep Dive into Kotlin Flow
jmatsu
1
370
複雑なフォームに立ち向かう Next.js の技術選定
macchiitaka
2
240
Processing Gem ベースの、2D レトロゲームエンジンの開発
tokujiros
2
130
概念モデル→論理モデルで気をつけていること
sunnyone
3
300
Ruby Parser progress report 2025
yui_knk
1
460
Introducing ReActionView: A new ActionView-compatible ERB Engine @ Rails World 2025, Amsterdam
marcoroth
0
710
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
1
460
The Past, Present, and Future of Enterprise Java with ASF in the Middle
ivargrimstad
0
180
テストカバレッジ100%を10年続けて得られた学びと品質
mottyzzz
2
610
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Documentation Writing (for coders)
carmenintech
74
5k
Music & Morning Musume
bryan
46
6.8k
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
YesSQL, Process and Tooling at Scale
rocio
173
14k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
A Tale of Four Properties
chriscoyier
160
23k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Transcript
RenovateをiOSアプリ開発に 導入・運用した話 coffmark Mobile勉強会 Wantedly × チームラボ #7
coffmark (コフマーク) 株式会社ドワンゴ iOSエンジニア
Mobile勉強会 Wantedly × チームラボ #6 継続的な依存性のアップデートにより得られたこと (久保出さん) https://speakerdeck.com/kubode/what-we-have-learned-from-continuou s-dependency-updates
話すこと ・Renovateとは ・iOSアプリの対応パッケージマネージャ ・導入方法 ・2ヶ月間ほど運用して良かったこと・大変だったこと ・まとめ
Renovateとは ・ライブラリの依存関係を自動で更新してくれるツール ・依存関係を解決した上で、バージョンアップを行うPull Requestを作成 ・Renovate構成ファイル書くことができます (renovate.jsonなど) ・レビュアーの人数、同時にアップデートするライブラリ数など https://github.com/renovatebot/renovate
Renovateの仕組み ① 対象となるレポジトリ内のライブラリの依存関係管理ファイルを取得 (ex. Podfile, Mintfile) ② ライブラリの依存関係管理ファイルから依存関係を全て取り出す
③ 構成ファイル(renovate.json)からどのライブラリを更新するか決める ⑤ 依存関係を解決して、Pull Requestを送信 ④ ライブラリ更新がある ⑤ 何もしない
iOSアプリの対応パッケージマネージャ Renovate Pull Request 会社の所属iOSチー ム CocoaPods #4667
使用している Carthage (正規表現を使う) XcodeGen (正規表現を使う) 使用しているが、 ライブラリ管理はして いない Package.swift #3911 .xcodeproj .xcworkspace #15133 (Draft) Mint #17351 by coffmark 使用している 2022/11/28時点
導入方法 ~ GitHub Actions ~
用意するもの ・GitHub Actions ・.github/workflow/renovate.yml ・Renovate構成ファイル ・renovate.json5 など ・参考: Configuration Options
.github/workflow/renovate.yml https://github.com/renovatebot/github-action name: Run Renovate on: schedule: - cron: '0
0 * * 1-5' jobs: renovate: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/
[email protected]
- name: Setup netrc uses: extractions/netrc@v1 with: machine: "github.com" username: ${{ secrets.USER_NAME }} password: ${{ secrets.PERSONAL_ACCESS_TOKEN }} - name: Self-hosted Renovate uses: renovatebot/
[email protected]
with: configurationFile: renovate.json5 token: ${{ secrets.RENOVATE_TOKEN }} env: LOG_LEVEL: 'debug'
renovate.json5 { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": ["config:base", ":timezone(Asia/Tokyo)"], "platform": "github", //
... 省略 "baseBranches": ["main"], // mainブランチ "branchPrefix": "renovate/", "labels": ["dependencies"], "prCreation": "immediate", "automerge": false, // 動作確認が必要な場合があるので、自動マージをオフに "prHourlyLimit": 0, "prConcurrentLimit": 1, // Renovateが提出できるOpenなPR数は1つまで "prBodyNotes": [ ... ], // PR説明文にレビュー手順を記載 "separateMajorMinor": true "separateMultipleMajor": true, }
Renovateを実行 https://github.com/coffmark/Renovate-iOS-sample/pull/39 coffmark/Renovate-iOS-sample
2ヶ月間ほど運用して良かったこと・大変だったこと
2ヶ月間運用してみて良かったこと - 👍 1週間に1つ以上のライブラリ更新ができている - 2ヶ月間で合計8つのライブラリを更新 - RxSwift, 6.5.0
- SwiftGen, 6.6.2 - 👍 ライブラリ更新が簡単に - 問題がなければapprove・merge、問題があればcloseするだけOK - closeすれば、また新しいPull Requestを作成してくれます
2ヶ月間運用してみて大変だったこと・改善したいこと - CIが通れば、すぐマージできるようにしたいこと - どうしてもUI系のライブラリは動作確認が必要 - バグが混入している新しいライブラリにアップデートしてしまいそうになる
- stabilityDaysを14日間に調整して様子をみています - (参考: stabilityDays)
まとめ - Renovateでライブラリ更新が(ほぼ)自動化できるようになりました - 改善点もいくつかあるので、今後改善していきたい
参考 ・dely Tech Blog: RenovateをiOSアプリ開発に導入してみた ・@ikesyoさん: RenovateによるiOSライブラリーの自動更新