Automatic Release in Cookpad

Automatic Release in Cookpad

2017/3/1
fastlane Meetup Japan @giginet

011714704c4a925e542d426d4cdaa4e3?s=128

giginet

March 01, 2017
Tweet

Transcript

  1. 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~) ▸ &⌚
  2. 3.
  3. 4.
  4. 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
  5. 6.
  6. 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
  7. 9.
  8. 10.
  9. 11.
  10. 12.
  11. 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
  12. 14.

    PULL REQUEST DRIVEN RELEASE ▸ Change release note on Pull

    Request ▸ Reviewable ▸ Refer histories easily PULL REQUEST DRIVEN RELEASE
  13. 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!)
  14. 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
  15. 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
  16. 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
  17. 19.

    WHAT BOTS DO WHAT IS MATCH? ▸ Sync certificates and

    Provisioning Profile between each machines ▸ ⬇Fetch from Dev Center ▸ encrypt ▸ ⬆Push to git repository
  18. 20.
  19. 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
  20. 22.

    WHAT BOTS DO BUILD AND SIGN FOR RELEASE ▸ Update

    dependencies ▸ using gym ▸ solves everything ▸ fastlane actions ▸ carthage, cocoapods, bundle_install, gym
  21. 23.

    WHAT BOTS DO UPLOAD SCREENSHOTS, METADATA AND BINARY ▸ using

    deliver ▸ Upload screenshots, metadata and binary
  22. 24.

    WHAT BOTS DO UPLOAD REVIEW INFORMATION FROM METAFILES ▸ Define

    review information on metafiles ▸ Before latest version, cannot define on files
  23. 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, })
  24. 27.

    WHAT BOTS DO GENERATE AD-HOC BUILD AND BACKUP XCARCHIVE ▸

    Generate ad-hoc build ▸ Export .xcarchive ▸ fastlane actions ▸ match, xcexport, backup_xcarchive
  25. 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)