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
440
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
460
Other Decks in Programming
See All in Programming
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
150
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.7k
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
220
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
230
AIで効率化できた業務・日常
ochtum
0
150
Agentic UI
manfredsteyer
PRO
0
200
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
810
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
4
860
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
170
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
790
Contextとはなにか
chiroruxx
1
380
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
600
Featured
See All Featured
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
290
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
170
Evolving SEO for Evolving Search Engines
ryanjones
0
230
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
Docker and Python
trallard
47
3.9k
Design in an AI World
tapps
1
250
A Modern Web Designer's Workflow
chriscoyier
698
190k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
550
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ライブラリーの自動更新