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
0
430
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
450
Other Decks in Programming
See All in Programming
Takumiから考えるSecurity_Maturity_Model.pdf
gessy0129
1
140
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
280
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.2k
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
290
New in Go 1.26 Implementing go fix in product development
sunecosuri
0
430
DevinとClaude Code、SREの現場で使い倒してみた件
karia
1
1k
Ruby x Terminal
a_matsuda
7
590
CDIの誤解しがちな仕様とその対処TIPS
futokiyo
0
200
コーディングルールの鮮度を保ちたい / keep-fresh-go-internal-conventions
handlename
0
200
AWS×クラウドネイティブソフトウェア設計 / AWS x Cloud-Native Software Design
nrslib
16
3.1k
Angular-Apps smarter machen mit Gen AI: Lokal und offlinefähig - Hands-on Workshop!
christianliebel
PRO
0
110
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
500
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
What's in a price? How to price your products and services
michaelherold
247
13k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
300
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
950
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
First, design no harm
axbom
PRO
2
1.1k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
480
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
210
The Mindset for Success: Future Career Progression
greggifford
PRO
0
270
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ライブラリーの自動更新