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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
coffmark
November 29, 2022
Programming
440
0
Share
RenovateをiOSアプリ開発に導入・運用した話
Mobile勉強会 Wantedly × チームラボ #7 で発表しました
https://wantedly.connpass.com/event/266081/
coffmark
November 29, 2022
More Decks by coffmark
See All by coffmark
Swift Concurrencyを利用したMVVMについて考える
coffmark
1
450
Other Decks in Programming
See All in Programming
Spec-Driven Development with AI Agents (Workshop, May 2026)
antonarhipov
4
410
Modding RubyKaigi for Myself
yui_knk
0
320
横断組織出身のQAEがインプロセスQAEでつまずいたこと・活かせたこと
ty89
0
160
ソースコード→AST→オペコード、の旅を覗いてみる
o0h
PRO
1
140
AIを導入する前にやるべきこと
negima
2
370
SkillsをS3 Filesに置く時のあれこれ
watany
3
1.7k
色即是空、空即是色、データサイエンス
kamoneggi
1
130
~ 秘伝のタレ化した『神スプシ』と戦う ~ 関数型パラダイムで壊れない仕組みへ
h0r15h0
1
120
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
210
Agentic UI in the Frontend: Architectures with Open Standards @JAX 2026 in Mainz
manfredsteyer
PRO
0
120
Import assertionsが消えた日~ECMAScriptの仕様はどう決まり、なぜ覆るのか~
bicstone
2
190
要はバランスからの卒業 #yumemi_grow
kajitack
0
170
Featured
See All Featured
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
260
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
180
Darren the Foodie - Storyboard
khoart
PRO
3
3.3k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
240
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
190
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
700
Reality Check: Gamification 10 Years Later
codingconduct
0
2.1k
The Curse of the Amulet
leimatthew05
1
12k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Context Engineering - Making Every Token Count
addyosmani
9
890
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ライブラリーの自動更新