continuous delivery for mobile platforms (ios and a bit of android)
TRANSCRIPT
![Page 1: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/1.jpg)
https://twitter.com/RamiRantalahttps://www.linkedin.com/in/ramirantala
![Page 2: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/2.jpg)
Continuous Delivery in mobile
Is it even possible?
![Page 3: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/3.jpg)
![Page 4: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/4.jpg)
10 developers from different teams
No testers - No QA department - No iOS team
![Page 5: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/5.jpg)
Gradle + Xcode plugin
..and Appium tests that were always broken
![Page 6: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/6.jpg)
forks vs. branches
![Page 7: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/7.jpg)
![Page 8: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/8.jpg)
Continuous Integration
was quickly in place
![Page 9: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/9.jpg)
Development in feature branch
Pull Request Merge CI Build to HockeyappReview Tag
![Page 10: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/10.jpg)
RELEASE
![Page 11: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/11.jpg)
Who will build RC? Who will merge to master? Who will upload it?
..AND WHY DO YOU RELEASE ON FRIDAY EVENING!?
![Page 12: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/12.jpg)
It usually fired back on Monday.
![Page 13: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/13.jpg)
Level 1
![Page 14: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/14.jpg)
Development in feature branch
Pull RequestREVIEWERMerges
CI Build to HockeyappReview
Merge to master Tag Build Upload to Testflight
Tag
Submit
![Page 15: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/15.jpg)
Fastlane
![Page 16: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/16.jpg)
![Page 17: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/17.jpg)
![Page 18: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/18.jpg)
![Page 19: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/19.jpg)
Fastlane works with Android
..and even with Gradle
![Page 20: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/20.jpg)
Release CandidateAutomation
![Page 21: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/21.jpg)
We automated RC build and upload from Master
![Page 22: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/22.jpg)
How do you manage build numbers?
How do you know which CI is which RC?
![Page 23: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/23.jpg)
Build numbers are kept in sync
CI 132 is from same code than RC 132 - and both are tagged
Version number 2.6.0 from plistBuildnumber added to the end 2.6.0.132Tags CI-2.6.0.132 and RC-2.6.0.132
![Page 24: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/24.jpg)
Same build and source code twice to testflight?
2.6.0.13200
2.6.0.13201
![Page 25: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/25.jpg)
Slack integration:- build ci- build rc latest- build rc tag- submit rc latest- set version- jenkins status- have fun- phantom
![Page 26: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/26.jpg)
Level 2
![Page 27: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/27.jpg)
Development in feature branch
Pull RequestDEVELOPERMerges
CI Build to HockeyappReview
Merge to master Build Tag Upload to Testflight
Tag
Submit
![Page 28: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/28.jpg)
![Page 29: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/29.jpg)
Daily Release Candidates
![Page 30: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/30.jpg)
How do you merge master daily?
Who will do it daily?
Should you automate it?
![Page 31: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/31.jpg)
We gave up master branch
![Page 32: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/32.jpg)
Level 3
![Page 33: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/33.jpg)
Development in feature branch
Pull RequestMerge to develop
CI Build to HockeyappReview
Build Tag Upload to Testflight
Tag
Send Release Note and create github release
Submit
Upload symbols to Hockeyapp
![Page 34: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/34.jpg)
How do you know what you have in build?
How do you know when to release?
![Page 35: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/35.jpg)
![Page 36: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/36.jpg)
Pull Request Checks
![Page 37: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/37.jpg)
![Page 38: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/38.jpg)
![Page 39: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/39.jpg)
![Page 40: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/40.jpg)
Slaves
![Page 41: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/41.jpg)
Huge attitude changer
![Page 42: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/42.jpg)
Level 4
![Page 43: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/43.jpg)
Download language keys
Check if they differ Commit Trigger
new CI
Separate track for language changes
![Page 44: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/44.jpg)
Dev in Feature Branch
Pull Request
Merge to develop
CI Build to Hockey
Review and QA
Tag
Smoke tests Unit tests SwiftLint PR Build to Hockeyapp
Tests
CI automation for every commit
![Page 45: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/45.jpg)
Build Tag Upload to Testflight
Send Release Note
Submit if there is no build in process
Upload symbols to Hockeyapp
Create Mega Report
Daily Release Automation (nightly)
![Page 46: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/46.jpg)
Check if release went live
Get versionMark version as release in github
Bump version in plist
New Mega Report
After release automation
![Page 47: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/47.jpg)
What is difficult?
What have we learned?
![Page 48: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/48.jpg)
Apple review time
Typically 2-3 days, sometimes even longerYou can’t have several versions in review at the same time
Android does not have review time
![Page 49: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/49.jpg)
Managerial mind
“Feature Freeze” “Release Management”“Release Plans”
![Page 50: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/50.jpg)
Test automation and testing in general
Creating automated tests takes timeRunning automated tests takes timeOnly developers can create and develop tests fastUI tests are constantly brokenDevelopers won’t create tests if you use technologies they are unfamiliar with
![Page 51: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/51.jpg)
What next?
![Page 52: Continuous Delivery for Mobile platforms (iOS and a bit of Android)](https://reader031.vdocuments.site/reader031/viewer/2022030304/5876fdab1a28abf3398b6b13/html5/thumbnails/52.jpg)
Thank you.