Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Automatic Release in Cookpad

giginet
March 01, 2017

Automatic Release in Cookpad

2017/3/1
fastlane Meetup Japan @giginet

giginet

March 01, 2017
Tweet

More Decks by giginet

Other Decks in Programming

Transcript

  1. 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. 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
  3. 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
  4. 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
  5. PULL REQUEST DRIVEN RELEASE ▸ Change release note on Pull

    Request ▸ Reviewable ▸ Refer histories easily PULL REQUEST DRIVEN RELEASE
  6. 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!)
  7. 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
  8. 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
  9. 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
  10. WHAT BOTS DO WHAT IS MATCH? ▸ Sync certificates and

    Provisioning Profile between each machines ▸ ⬇Fetch from Dev Center ▸ encrypt ▸ ⬆Push to git repository
  11. 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
  12. WHAT BOTS DO BUILD AND SIGN FOR RELEASE ▸ Update

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

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

    review information on metafiles ▸ Before latest version, cannot define on files
  15. 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, })
  16. WHAT BOTS DO GENERATE AD-HOC BUILD AND BACKUP XCARCHIVE ▸

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

    Developer productivities are improved significantly! ▸ We ❤ fastlane ▸ Use fasltane for Global App ▸ (currently, only for domestic)