Slide 1

Slide 1 text

CI with Git Flow Prince

Slide 2

Slide 2 text

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)

Slide 3

Slide 3 text

Roles • RD • QA / PM / PO • Beta Users • App Store Users

Slide 4

Slide 4 text

Phases • Development • QA • Beta • Release (on App Store)

Slide 5

Slide 5 text

Deploy Environment • Development environment • dev-host • QA environment • dev-host • crashlytics • Production environment • beta-host & master-host • crashlytics / mixpanel

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Rethink Git Flow • combine Branch and Development phases

Slide 8

Slide 8 text

dev Jenkins OSX Server unit test static analysis testflight Development Phase DevEnv.ipa (BetaEnv.ipa) Private Build … every commit / manually

Slide 9

Slide 9 text

release dev Code Freeze and start QA phase QA Phase

Slide 10

Slide 10 text

release dev Tester can install ipa from TestFlight Integration Build Jenkins TestFlight DevEnv.ipa (BetaEnv.ipa) check hourly / manually QA Phase

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

master release dev Beta 1 notify distribution list Jenkins TestFlight DevEnv.ipa BetaEnv.ipa Release Build manually Beta Phase ProdEnv.ipa

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

master release dev Tag 1.1.0 manually Release Build App Store submit Release phase ProdEnv.ipa

Slide 15

Slide 15 text

Developer CI Server TestFlight Github Data Storage Developer Developer Build ipa Run Test Deploy app Build Development Pull source CI Architecture

Slide 16

Slide 16 text

End