Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Optimize Flutter Workflow on Bitrise
Hiroki Matsue
March 26, 2019
Technology
2
820
Optimize Flutter Workflow on Bitrise
Flutter Meetup Tokyo #8"でのLT資料です。
https://flutter-jp.connpass.com/event/121387/
Hiroki Matsue
March 26, 2019
Tweet
Share
More Decks by Hiroki Matsue
See All by Hiroki Matsue
Getting Screenshots Automatically in Flutter
matsue
2
410
Write tests for Provider
matsue
5
580
ややcomplexなBLoCへの対応
matsue
2
590
Flutterアプリの難読化とエラーレポート(iOS)
matsue
2
1.3k
いまさらだけど「良い通知」について考えてみた
matsue
4
9.5k
リテンション率を2倍にするための2つの視点
matsue
0
3.2k
リソースを効率的に使うためのバックログ活用事例
matsue
1
440
ローディング時のより良いUIの実装
matsue
2
1.6k
カウルにおけるElasiticsearchの導入と実例
matsue
0
630
Other Decks in Technology
See All in Technology
〇〇みたいな検索作ってと言われたときに考えること / thinking before developing search system like that one
ryook
5
2.7k
Amplifyで Webアプリケーションの 堅固な土台をサクッと構築する方法
kawasakiteruo
0
220
20220731 如何跟隨開源技術保持你的職涯發展
pichuang
0
120
私のAWS愛を聞け!ここが好きだよAmazon FSx for NetApp ONTAP
non97
0
750
AWS CLI でやってみる ~ AWS Hands-on for Beginners ECS ハンズオン ~
kentosuzuki
1
450
Red Hat Enterprise Linux 9のリリースノートを読む前に知りたい最近のキーワードをまとめて復習
moriwaka
0
360
ソフトバンクaPaaS領域への挑戦
sbtechnight
0
310
テクニカルライティングの検定を受けてみた話 / "My Story About Taking the Technical Writing Exam
line_developers
PRO
1
210
psql, my favorite tool!
nuko_yokohama
1
180
SBOMを利用したソフトウェアサプライチェーンの保護
masahiro331
1
190
ECS Fargate+Mackerelにおける監視費用を削減するまでの話
nulabinc
PRO
1
420
20220803投資先CXO候補者向け 会社紹介資料_合同会社BLUEPRINT
hik
0
290
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
219
17k
Docker and Python
trallard
27
1.6k
How GitHub Uses GitHub to Build GitHub
holman
465
280k
Unsuck your backbone
ammeep
659
55k
BBQ
matthewcrist
74
7.9k
Designing for humans not robots
tammielis
241
24k
Learning to Love Humans: Emotional Interface Design
aarron
261
37k
Keith and Marios Guide to Fast Websites
keithpitt
404
21k
Happy Clients
brianwarren
89
5.6k
Why You Should Never Use an ORM
jnunemaker
PRO
47
7.6k
4 Signs Your Business is Dying
shpigford
169
20k
The MySQL Ecosystem @ GitHub 2015
samlambert
239
11k
Transcript
Optimize Flutter Workflow on Bitrise Hiroki Matsue (@macs_6) Mar 26th,
2019 Flutter Meetup Tokyo #8
This talk is about CI steps time reduction
Target Listeners
Who know this
Faster CI makes devs happier
Reulst on my project Timeout => 9 minutes Just few
minutes, but Free plan is not so bad ¯\(π)/¯
Flutter CI steps 1. Install Flutter 2. Execute "flutter analyze"
3. Execute "flutter test" 4. Execute "flutter build" (Android and iOS both)
(Each results were measured with my personal project)
Try "Flutter Install" step optimization
TL;DR: Just wait new Hybrid stack https://discuss.bitrise.io/t/making-flutter-builds-faster/3976/8
What if we cache Flutter? • flutter installation: 137sec 㱺
2sec (-135sec) • cache-pull: 11sec 㱺 27sec (+16sec) • cache-push: 92sec 㱺 209sec (+117sec) Only remote storage was changed, no time reduction
Try "flutter build" step optimization
TL;DR: Cache following items • ios/Pods/ • $HOME/Library/Developer/Xcode/DerivedData
Pods caching result • flutter build ios: 172sec 㱺 99sec
(-73sec) • cache-pull: 9sec => 11sec (+2sec) • cache-push: 58sec 㱺 72sec (+14sec) Very effective !
DerivedData caching result • flutter build ios: 140sec 㱺 54sec
(-86sec) • cache-pull: 15sec => 15sec (+0sec) • cache-push: 85sec 㱺 141sec (+56sec)
Non effective items on my project • build/ • ios/Flutter/
• ios/.symlinks/ • $HOME/.gradle/ • android/.gradle/ cache-push tooks too long time for .gradle on my project.
References • "60% faster builds: force Xcode to use caching
on Bitrise!" https://medium.com/@bitrise/60-faster-builds-force-xcode- to-use-caching-on-bitrise-af8979ca39a6 • "Cache Gradle dependencies on Bitrise" https:// medium.com/bitrise/cache-gradle-dependencies-on- bitrise-cf19a2580d07
Faster "flutter analyze" and "flutter test"? Sorry, I have no
idea now ¯\(π)/¯
Other ideas • Put dependencies to the repo • Use
build scheduling for long workflows • Pay for Bitrise • Concurrent build for ios and apk
Summary Caching following items, and using new Flutter Hybrid stacks
will be efficient. • ios/Pods/ • $HOME/Library/Developer/Xcode/DerivedData
Thanks