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

中規模以上のアプリ開発におけるCIレシピとリリースフロー戦略

kazakago
February 08, 2019

 中規模以上のアプリ開発におけるCIレシピとリリースフロー戦略

DroidKaigi 2019登壇資料
2019/02/08 10:30-11:00 Room 2

スライド内で紹介したリンク

- git-flow cheatsheet
Git-Flowの解説をしている代表的なサイト
https://danielkummer.github.io/git-flow-cheatsheet

- bitrise.yml
スライド内で紹介したBitrise用の汎用yamlファイル
https://gist.github.com/KazaKago/7d91f3740345889e9812e6aecd9d98a4

- StepReleaseDispatcher
スライド内で紹介したPlayストアにおける自動的な「段階的な公開」を行うためのKtor製サーバープログラム
https://github.com/KazaKago/StepReleaseDispatcher

kazakago

February 08, 2019
Tweet

More Decks by kazakago

Other Decks in Programming

Transcript

  1. ฐࣾ"OESPJEνʔϜʹ͓͚ΔϚΠϧετʔϯ ೔ ݄ Ր ਫ ໦ ۚ ౔ ։ൃ ೔

    ݄ Ր ਫ ໦ ۚ ౔ ։ൃ ։ൃऀνΣοΫ 2"νΣοΫ ೔ ݄ ϦϦʔε ϚΠϧετʔϯ  XJUIʹ͓͚Δݱঢ়ͱ ि໨ ि໨ ि໨
  2. .BTUFS %FWFMPQ )PUGJY 3FMFBTF 'FBUVSF <- ۓٸόάରԠ༻ϒϥϯν <- ϦϦʔε४උ༻ϒϥϯν <-

    ϦϦʔεͨ͠΋ͷ͕ฒͿϒϥϯν <- ։ൃ༻ϝΠϯϒϥϯν <- ୯Ұͷػೳ։ൃ༻ϒϥϯν ΞϓϦ։ൃϑϩʔ  (JU'MPXΛ༻͍ͨ
  3. ฐࣾ"OESPJEνʔϜʹ͓͚ΔϚΠϧετʔϯ ΞϓϦ։ൃϑϩʔ  (JU'MPXΛ༻͍ͨ ೔ ݄ Ր ਫ ໦ ۚ

    ౔ ։ൃ ೔ ݄ Ր ਫ ໦ ۚ ౔ ։ൃ ։ൃऀνΣοΫ 2"νΣοΫ ೔ ݄ ϦϦʔε ͜ͷλΠϛϯάͰ
 SFMFBTFϒϥϯν࡞੒ ि໨ ि໨ ि໨
  4. (JU'MPX DPNNBOE • Mac (Homebrew) $ brew install git-flow •

    Linux (apt-get) $ apt-get install git-flow • Windows $ ͜͜ʹه͢ʹ͸༨ന͕ڱ͗͢Δ ΞϓϦ։ൃϑϩʔ  (JU'MPXΛ༻͍ͨ
  5. (JU'MPX DPNNBOE $ git flow init $ git flow feature

    start <BRANCH_NAME> $ git flow feature finish <BRANCH_NAME> $ git flow feature publish <BRANCH_NAME> ΞϓϦ։ൃϑϩʔ  (JU'MPXΛ༻͍ͨ
  6. Activate SSH Key Git Clone Repository Install missing Android SDK

    components Android Unit Test Danger 6OJU 5FTU ϑϩʔ τϦΨʔ 16-- 3&26&45 4PVSDF CSBODI  5BSHFU CSBODI ࿈ܞʹΑΔ࡞ۀࣗಈԽ  $*πʔϧͱϒϥϯνӡ༻ͷ #JUSJTFͰ͸Ұ࿈ͷॲཧΛ ·ͱΊͨ΋ͷΛʮϫʔΫϑϩʔʯ ͱݺͼ·͢
  7. Activate SSH Key Git Clone Repository Install missing Android SDK

    components Android Build APK Info Sign APK DeployGate Upload Send a Slack *OUFSOBM %FQMPZ ϑϩʔ τϦΨʔ 164) #SBODI EFWFMPQ SFMFBTF IPUGJY ࿈ܞʹΑΔ࡞ۀࣗಈԽ  $*πʔϧͱϒϥϯνӡ༻ͷ
  8. Activate SSH Key Git Clone Repository Install missing Android SDK

    components Android Build APK Info Sign APK Google Play Deploy Send a Slack 4UPSF VQMPBE ϑϩʔ τϦΨʔ  5"( 5BH OBNF   ࿈ܞʹΑΔ࡞ۀࣗಈԽ  $*πʔϧͱϒϥϯνӡ༻ͷ
  9. Activate SSH Key Git Clone Repository Install missing Android SDK

    components Android Build APK Info Sign APK DeployGate Upload Send a Slack TFUVQ CVJME EFQMPZ OPUJGZ ϫʔΫϑϩʔΛখ෼͚ʹ͢Δ ࿈ܞʹΑΔ࡞ۀࣗಈԽ  $*πʔϧͱϒϥϯνӡ༻ͷ
  10. Android Build APK Info Sign APK CVJME • ModuleName •

    ex) app • VariantName • ex) stagingRelease ϓϩδΣΫτ͝ͱʹมΘΔ৘ใ ؀ڥม਺ͱͯ͠ఆٛ͢Δ ˣ ࿈ܞʹΑΔ࡞ۀࣗಈԽ  $*πʔϧͱϒϥϯνӡ༻ͷ
  11. ετΞͰͷஈ֊తެ։ͷྫ         

      ೔໨ ೔໨ ೔໨ ೔໨  (PPHMF 1MBZ %FWFMPQFS "1*Λ ͨ҆͠ఆతͳϦϦʔεख๏
  12. "QQ4UPSF
 J04 (PPHMF1MBZ
 "OESPJE ެ։ׂ߹ ݻఆׂ߹ ୯ҐͰࢦఆՄೳ શެ։·Ͱͷ೔਺ ೔ݻఆ
 ్தͰશެ։΁੾Γସ͑Մೳ

    ʹͨ࣌͠ ߋ৽ํ๏ ࣗಈͷΈ
 ೔͝ͱʹ֦େ खಈͷΈ
 ೚ҙͷλΠϛϯά  (PPHMF 1MBZ %FWFMPQFS "1*Λ ͨ҆͠ఆతͳϦϦʔεख๏
  13.  (PPHMF 1MBZ %FWFMPQFS "1*Λ ͨ҆͠ఆతͳϦϦʔεख๏ "QQ4UPSF
 J04 (PPHMF1MBZ
 "OESPJE

    ެ։ׂ߹ ݻఆׂ߹ ୯ҐͰࢦఆՄೳ શެ։·Ͱͷ೔਺ ೔ݻఆ
 ్தͰશެ։΁੾Γସ͑Մೳ ʹͨ࣌͠ ߋ৽ํ๏ ࣗಈͷΈ
 ೔͝ͱʹ֦େ खಈͷΈ
 ೚ҙͷλΠϛϯά
  14. (PPHMF 1MBZ %FWFMPQFS "1*Ͱग़དྷΔ͜ͱ  ৽όʔδϣϯͷΞϓϦͷΞοϓϩʔυͱϦϦʔε  ϩʔΧϥΠζͨ͠ςΩετ΍άϥϑΟοΫΛؚΉɺ (PPHMF 1MBZ

    ετΞͷϦετฤू  ΞϓϦ಺ΞΠςϜͷΧλϩάɺ঎඼ͷߪೖঢ়گɺ ΞϓϦͷఆظߪೖͷ؅ཧ  (PPHMF 1MBZ %FWFMPQFS "1*Λ ͨ҆͠ఆతͳϦϦʔεख๏
  15.  (PPHMF 1MBZ %FWFMPQFS "1*Λ ͨ҆͠ఆతͳϦϦʔεख๏ { "track": string, "releases":

    [ { "name": string, "versionCodes": [ long ], "userFraction": double, "releaseNotes": [ { "language": string, "text": string } ], "status": string } ] } ϦϦʔε৘ใͷ
 ϨεϙϯεܗࣜͰ͢ +BWBͱ1ZUIPOʹؔͯ͠͸ ϥΠϒϥϦ΋༻ҙ͞Ε͍ͯ·͢
  16.  (PPHMF 1MBZ %FWFMPQFS "1*Λ ͨ҆͠ఆతͳϦϦʔεख๏ { "track": string, "releases":

    [ { "name": string, "versionCodes": [ long ], "userFraction": double, "releaseNotes": [ { "language": string, "text": string } ], "status": string } ] } 7FSTJPO/BNF FY  7FSTJPO$PEF FY  ഑৴ൺ཰   GSBDUJPO   ˞JO1SPHSFTT IBMUFEҎ֎ͷ৔߹͸ฦ͞Ε·ͤΜ ഑৴ઌτϥοΫ໊ ഑৴εςʔλε
  17.  (PPHMF 1MBZ %FWFMPQFS "1*Λ ͨ҆͠ఆతͳϦϦʔεख๏ { "track": string, "releases":

    [ { "name": string, "versionCodes": [ long ], "userFraction": double, "releaseNotes": [ { "language": string, "text": string } ], "status": string } ] } • completed • draft • halted • inProgress ͷ͍ͣΕ͔ • alpha • beta • production • rollout • internal ͷ͍ͣΕ͔ ഑৴ઌτϥοΫ໊ ഑৴εςʔλε
  18.  (PPHMF 1MBZ %FWFMPQFS "1*Λ ͨ҆͠ఆతͳϦϦʔεख๏ { "track": string, "releases":

    [ { "name": string, "versionCodes": [ long ], "userFraction": double, "releaseNotes": [ { "language": string, "text": string } ], "status": string } ] } ಛఆͷ೔࣌ʹ഑৴ઌτϥοΫ͕
 ʮQSPEVDUJPOʯ͔ͭ഑৴εςʔλε͕
 ʮJO1SPHSFTTʯͷ৔߹ʹ
 ࣄલʹఆٛͨ͠഑৴ൺ཰΁มߋ͢Δ
 
 ·ͨɺ࣍ʹมߋ͢Δ഑৴ൺ཰͕
 ͷ৔߹͸഑৴εςʔλεΛ ʮDPNQMFUFEʯ΁มߋ͢Δ