Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Continuous Delivery for Mobile platforms (iOS and a bit of Android)

203 views

Published on

Slides for presentation kept in Devops Finland meetup 18.10.2016 It presents the journey Zalando Helsinki had towards the Continuous Delivery on iOS and bit on Android.

https://www.meetup.com/devops-finland/events/234659906/

Published in: Software
  • Be the first to comment

Continuous Delivery for Mobile platforms (iOS and a bit of Android)

  1. 1. https://twitter.com/RamiRantala https://www.linkedin.com/in/ramirantala
  2. 2. Continuous Delivery in mobile Is it even possible?
  3. 3. 10 developers from different teams No testers - No QA department - No iOS team
  4. 4. Gradle + Xcode plugin ..and Appium tests that were always broken
  5. 5. forks vs. branches
  6. 6. Continuous Integration was quickly in place
  7. 7. Development in feature branch Pull Request Merge CI Build to HockeyappReview Tag
  8. 8. RELEASE
  9. 9. Who will build RC? Who will merge to master? Who will upload it? ..AND WHY DO YOU RELEASE ON FRIDAY EVENING!?
  10. 10. It usually fired back on Monday.
  11. 11. Level 1
  12. 12. Development in feature branch Pull Request REVIEWER Merges CI Build to HockeyappReview Merge to master Tag Build Upload to Testflight Tag Submit
  13. 13. Fastlane
  14. 14. Fastlane works with Android ..and even with Gradle
  15. 15. Release Candidate Automation
  16. 16. We automated RC build and upload from Master
  17. 17. How do you manage build numbers? How do you know which CI is which RC?
  18. 18. 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 plist Buildnumber added to the end 2.6.0.132 Tags CI-2.6.0.132 and RC-2.6.0.132
  19. 19. Same build and source code twice to testflight? 2.6.0.13200 2.6.0.13201
  20. 20. Slack integration: - build ci - build rc latest - build rc tag - submit rc latest - set version - jenkins status - have fun - phantom
  21. 21. Level 2
  22. 22. Development in feature branch Pull Request DEVELOPER Merges CI Build to HockeyappReview Merge to master Build Tag Upload to Testflight Tag Submit
  23. 23. Daily Release Candidates
  24. 24. How do you merge master daily? Who will do it daily? Should you automate it?
  25. 25. We gave up master branch
  26. 26. Level 3
  27. 27. Development in feature branch Pull Request Merge to develop CI Build to HockeyappReview Build Tag Upload to Testflight Tag Send Release Note and create github release Submit Upload symbols to Hockeyapp
  28. 28. How do you know what you have in build? How do you know when to release?
  29. 29. Pull Request Checks
  30. 30. Slaves
  31. 31. Huge attitude changer
  32. 32. Level 4
  33. 33. Download language keys Check if they differ Commit Trigger new CI Separate track for language changes
  34. 34. 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
  35. 35. 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)
  36. 36. Check if release went live Get version Mark version as release in github Bump version in plist New Mega Report After release automation
  37. 37. What is difficult? What have we learned?
  38. 38. Apple review time Typically 2-3 days, sometimes even longer You can’t have several versions in review at the same time Android does not have review time
  39. 39. Managerial mind “Feature Freeze” “Release Management” “Release Plans”
  40. 40. Test automation and testing in general Creating automated tests takes time Running automated tests takes time Only developers can create and develop tests fast UI tests are constantly broken Developers won’t create tests if you use technologies they are unfamiliar with
  41. 41. What next?
  42. 42. Thank you.

×