Automatic Release in Cookpad

011714704c4a925e542d426d4cdaa4e3?s=47 giginet
March 01, 2017

Automatic Release in Cookpad

2017/3/1
fastlane Meetup Japan @giginet

011714704c4a925e542d426d4cdaa4e3?s=128

giginet

March 01, 2017
Tweet

Transcript

  1. AUTOMATIC RELEASE IN COOKPAD fastlane Meetup Japan @giginet

  2. TEXT SELF INTRODUCTION ▸ @giginet ▸ Work for Cookpad Inc.

    ▸ Develop fundamental layer of mobile apps ▸ Improve developer productivity. ▸ I'll talk in try! Swift (3/3 18:00~) ▸ &⌚
  3. None
  4. None
  5. INTRODUCTION ABOUT COOKPAD APP ▸ 9.3 million unique users (iOS

    & Android) per month ▸ Developed from 2012 ▸ Release monthly ▸ Versioning by year and month (e.g. 17.2.1.0) ▸ Developed by 10 or few contributors per releases
  6. https://www.slideshare.net/KazuMatsu/20160913-cookpad- iosjp-65981541 Previous Release Deadline of PR Code Freeze Submit

    Release Cookpad Tech Kitchen #2ɹiOSΞϓϦͷܧଓతσϦόϦʔ΁ͷऔΓ૊Έ
  7. TEXT WHY USE FASTLANE? ▸ We ❤ Ruby ▸ Releasing

    continuously ▸ Submission flow is too complex ▸ Each departments add to release info. ▸ Everyone use GitHub Enterprise (designers, directors) ▸ All changes should be discussed on PR
  8. ✋BEFORE

  9. None
  10. None
  11. None
  12. AFTER

  13. 1. bot submit <application> <version> 2. bot launch the Jenkins

    job via API 3. Clone latest source 4. Execute lane 5. Submit to iTunes Connect
  14. PULL REQUEST DRIVEN RELEASE ▸ Change release note on Pull

    Request ▸ Reviewable ▸ Refer histories easily PULL REQUEST DRIVEN RELEASE
  15. PULL REQUEST DRIVEN RELEASE ▸ Change app icon onPull Request

    too! ▸ Easy to change for seasonal events ▸ for Valentine❤ , Halloween ▸ Change app icons without developers (by designers!)
  16. WHAT BOTS DO ▸ Make tag and GitHub releases ▸

    Download certificates and Provisioning Profile ▸ Build and sign for release ▸ Upload screenshots, metadata and binary ▸ Submit for review ▸ Generate ad-hoc build and backup xcarchive WHAT BOTS DO
  17. WHAT BOTS DO MAKE TAGS AND GITHUB RELEASES ▸ Make

    tags on GitHub enterprise automatically ▸ fastlane actions ▸ ensure_git_clean, add_git_tag, set_github_release, push_to_git_remote
  18. WHAT BOTS DO DOWNLOAD CERTIFICATES AND PROVISIONING PROFILE ▸ Code

    Signing is very annoying issue ▸ using match ▸ fastlane actions ▸ match, update_project_codesigning(plugin), update_project_provisioning
  19. WHAT BOTS DO WHAT IS MATCH? ▸ Sync certificates and

    Provisioning Profile between each machines ▸ ⬇Fetch from Dev Center ▸ encrypt ▸ ⬆Push to git repository
  20. 1. match creates/downloads 
 certificates and Provisioning Profiles 2. Push

    to git repository 3. Download from each machines
  21. WHAT BOTS DO AUTOMATIC SIGNING ▸ Automatic Signing may not

    work for release ▸ Disable Automatic Signing on CI ▸ https://github.com/hjanuschka/fastlane-plugin- update_project_codesigning
  22. WHAT BOTS DO BUILD AND SIGN FOR RELEASE ▸ Update

    dependencies ▸ using gym ▸ solves everything ▸ fastlane actions ▸ carthage, cocoapods, bundle_install, gym
  23. WHAT BOTS DO UPLOAD SCREENSHOTS, METADATA AND BINARY ▸ using

    deliver ▸ Upload screenshots, metadata and binary
  24. WHAT BOTS DO UPLOAD REVIEW INFORMATION FROM METAFILES ▸ Define

    review information on metafiles ▸ Before latest version, cannot define on files
  25. Available on fastlane 2.18.0

  26. WHAT BOTS DO SUBMIT FOR REVIEW ▸ deliver can click

    "Submit for review" automatically. submission_information({ export_compliance_encryption_updated: false, export_compliance_uses_encryption: false, add_id_info_uses_idfa: true, add_id_info_serves_ads: true, add_id_info_tracks_install: false, add_id_info_tracks_action: false, add_id_info_limits_tracking: true, })
  27. WHAT BOTS DO GENERATE AD-HOC BUILD AND BACKUP XCARCHIVE ▸

    Generate ad-hoc build ▸ Export .xcarchive ▸ fastlane actions ▸ match, xcexport, backup_xcarchive
  28. CONCLUSION CONCLUSION ▸ We submits monthly releases in automatic ▸

    Developer productivities are improved significantly! ▸ We ❤ fastlane ▸ Use fasltane for Global App ▸ (currently, only for domestic)
  29. THANK YOU FOR YOUR ATTENTION @giginet