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

CI with Git Flow

CI with Git Flow

Pin-Shih Wang

July 01, 2014
Tweet

More Decks by Pin-Shih Wang

Other Decks in Programming

Transcript

  1. Goal • Assembling software every time code changes • Defect

    integration errors as quickly as possible • When we get the code from the repository, it will always build successfully and pass all tests • Auto deploy in different environments (ref)
  2. Roles • RD • QA / PM / PO •

    Beta Users • App Store Users
  3. Deploy Environment • Development environment • dev-host • QA environment

    • dev-host • crashlytics • Production environment • beta-host & master-host • crashlytics / mixpanel
  4. Build Type • Private build • unit test, static analysis,

    … • Integrated build • build DevEnv.ipa, delivery via TestFlight • Release build • build BetaEnv.ipa, delivery via TestFlight • build ProdEnv.ipa
  5. dev Jenkins OSX Server unit test static analysis testflight Development

    Phase DevEnv.ipa (BetaEnv.ipa) Private Build … every commit / manually
  6. release dev Tester can install ipa from TestFlight Integration Build

    Jenkins TestFlight DevEnv.ipa (BetaEnv.ipa) check hourly / manually QA Phase
  7. release dev fix bugs on release branch Integration Build Jenkins

    TestFlight DevEnv.ipa (BetaEnv.ipa) check hourly / manually QA Phase
  8. master release dev Beta 1 notify distribution list Jenkins TestFlight

    DevEnv.ipa BetaEnv.ipa Release Build manually Beta Phase ProdEnv.ipa
  9. master release dev Beta 2 notify distribution list Release Build

    hotfix on master branch Beta Phase Jenkins TestFlight DevEnv.ipa BetaEnv.ipa manually ProdEnv.ipa
  10. Developer CI Server TestFlight Github Data Storage Developer Developer Build

    ipa Run Test Deploy app Build Development Pull source CI Architecture
  11. End