Save 37% off PRO during our Black Friday Sale! »

Smartphone Gamedev CI+CD with GitLab

Smartphone Gamedev CI+CD with GitLab

A twenty minute presentation I gave at Yuru Web Benkyoukai @ Sapporo #2 (on 2018/11/9) detailing the move of our build infrastructure over to GitLab for Continuous Integration and Deployment. I also bring up some problems and issues that still remain while trying to optimize our build process for handling support for eight different platforms.

(Note: This presentation is only in Japanese, sorry.)

3a488be96753f7e2232f3a3d79b83083?s=128

Michael Tedder

November 09, 2018
Tweet

Transcript

  1. (JU-BCͰεϚϗήʔϜ։ൃͷ$*$% גࣜձࣾίʔϧυɾϑϡʔδϣϯ ςομʔɹϚΠέϧ
 5FDIOJDBM%JSFDUPS$&0 ΏΔ8FCษڧձ!ࡳຈ ೥݄೔ ۚ ΏΔ8FCࡳຈ

  2. ג ίʔϧυɾϑϡʔδϣϯ୅දऔక໾
 5PLZP%FNP'FTUϝΠϯओ࠵ऀ
 ࡳຈ஍ҬΫϥ΢υަྲྀձελοϑ ςομʔɹϚΠέϧ ࡀ ࣗݾ঺հ ΏΔ8FCࡳຈ

  3. ג ίʔϧυɾϑϡʔδϣϯ୅දऔక໾
 5PLZP%FNP'FTUϝΠϯओ࠵ऀ
 ࡳຈ஍ҬΫϥ΢υަྲྀձελοϑ ςομʔɹϚΠέϧ ࡀ ग़਎ΞϝϦΧ ϑϩϦμभΦʔϥϯυࢢ  དྷ೔೥݄

    ೥લ  ࢓ࣄήʔϜ։ൃ ೥લ14/࣌୅͔Β  ݴޠ$ (-4-1)15ZQF4DSJQU झຯσϞγʔϯνοϓνϡʔϯ73 ࣗݾ঺հ ΏΔ8FCࡳຈ
  4. None
  5. ςομʔɹϚΠέϧ
 5FDIOJDBM%JSFDUPS$&0
 ๺ւಓࡳຈࢢ ෱ຊɹষ
 %FTJHO"SU%JSFDUPS
 ౦ژ౎ &JLFl3PNFP,OJHIUz4UF⒎FO
 .VTJD4PVOE%JSFDUPS
 υΠπɹσϡοηϧυϧϑࢢ ΏΔ8FCࡳຈ

  6. ΫϦελϧɾΫϥογϡʲ௒߈ܸత߹ઓʂʳJ04"OESPJEʢແྉʣ (PPHMF1MBZ*('5PQड৆ϑΝϛ௨ɾిܸɾHBNFSʮ5(4ϝσΟΞΞϫʔυʯϊϛωʔτ ΏΔ8FCࡳຈ

  7. ΏΔ8FCࡳຈ ೥݄ͷը૾  ೥͔͚ؒͯϚϧνϓϥοτϑΥʔϜͷϦΞϧλΠϜ%
 ΦʔσΟΦωοτϫʔΫΤϯδϯɺϏϧυύΠϓϥΠϯɺ ΠϯϑϥΛθϩ͔Β࡞੒
 
 


  8. ࠓ೔͓࿩͢͠Δ͜ͱΏΔ8FCࡳຈ  $'Τϯδϯͷ։ൃΠϯϑϥ (JU-BC$* 
  ΫϦελϧΫϥογϡͷωοτϫʔΫΠϯϑϥ
  (JU-BCҠߦʹΑΔ໰୊఺ະղܾ͜ͱ

  9. ։ൃΠϯϑϥ ΏΔ8FCࡳຈ  ͭͷϓϥοτϑΥʔϜରԠ 8JOEPXT
 /JOUFOEP4XJUDI -JOVY
 "OESPJE NBD04J04
 UW04XBUDI04

    7JTVBM4UVEJP 8JOEPXTϗετ 
 .BLFpMFDMBOH -JOVYϗετ 
 9DPEF NBD04ϗετ
  10. ։ൃΠϯϑϥ ΏΔ8FCࡳຈ  Ϗϧυ$*ύΠϓϥΠϯ  Τϯδϯ΁ͷHJUQVTIˠίϯύΠϧˠςετˠ
 ίʔυΧόϨοδˠΫϦΫϥͷϏϧυ  ΫϦΫϥ΁ͷHJUQVTIˠίϯύΠϧˠσϓϩΠ
 

    ݱࡏςετͳ͠
  11. ։ൃΠϯϑϥ ΏΔ8FCࡳຈ  Ҏલ͸UNJDSPͷ୆ͰHJU CVJMECPUαʔόʔ  J.BDͷ୆ͰNBD04ɺ8JOEPXT -JOVYͷ7JSUVBM#PY 7.ͰશϏϧυߦͬͯͨ 

    Τϯδϯमਖ਼ˠσϓϩΠ·Ͱ໿࣌ؒ൒
 ͔ͳΓॏ͔ͬͨ   4XJUDIରԠ࢝ΊͨΒ8JOEPXT7.ͷॏ͞ʹ଱͖͑Εͣ
  12. ͳͥ(JU-BCʁ ΏΔ8FCࡳຈ  ඇެ։Ϧϙແ੍ݶ  Ϣʔβʔ਺ແ੍ݶ  $*$%͕ϏϧτΠϯ HJUMBCDJZNMΛϦϙʹஔ͚ͩ͘ 

     ຖ݄෼ ໿࣌ؒ ͷ(JU-BC$*ϥϯφʔར༻෼  ඇެ։%PDLFSϨδετϦ  શ෦ແྉʂ
  13. ϥϯφʔͱ͸ʁ ΏΔ8FCࡳຈ  (JU-BC$*Λ࣮ߦ͢ΔͨΊʹϗετ1$΍7.ʹ࣮ߦ ͢Δπʔϧ  HJUMBCDJZNMʹॻ͔ΕͯΔεΫϦϓτΛͦͷ·· ϥϯφʔʹ࣮ߦͤ͞Δ  EPDLFSNBDIJOFରԠͳͷͰࣗಈతʹ&$


    ΠϯελϯεΛ্ཱͪ͛ͱγϟοτμ΢ϯʢ࠷ڧ
  14. $'Τϯδϯͷ$*:".-ΏΔ8FCࡳຈ

  15. None
  16. $'Τϯδϯͷ$*:".-ΏΔ8FCࡳຈ  TUBHFTCVJMEUFTUUSJHHFS  CVJMEϓϥοτϑΥʔϜ͝ͱʹ  ΤϯδϯMJCΛίϯύΠϧ  ςετ FYFBQQJQBBQL

    ΛίϯύΠϧ
  17. $'Τϯδϯͷ$*:".-ΏΔ8FCࡳຈ  UFTUϓϥοτϑΥʔϜ͝ͱʹ  ςετΛ࣮ߦ  ໭Γ஋ 1$ ϩάग़ྗ εϚϗ

    Ͱ੒ޭࣦഊΛ൑அ  ίʔυΧόϨοδΛDPEFDPWJPʹΞοϓϩʔυ  USJHHFSΫϦΫϥͷϏϧυΛ࣮ߦ
  18. $'Τϯδϯͷ$*:".-ΏΔ8FCࡳຈ  TUBHF͝ͱʹϥϯφʔࢦఆͰ͖Δ  8JOEPXTͱ4XJUDIϏϧυ͸8JOEPXTϥϯφʔ΁ ͳͲͳͲ  EPDLFSNBDIJOFϥϯφʔͷ৔߹%PDLFSΠϝʔδࢦఆ΋Մೳ  -JOVYͱ"OESPJEϏϧυ͸ผʑͷΠϝʔδΛར༻

     "OESPJE4%,/%, (SBEMFͷґଘϥΠϒϥϦΛ"OESPJE ͷΠϝʔδʹຒΊࠐΉʢຖճμ΢ϯϩʔυආ͚ΔͨΊʣ
  19. (JU-BC6* ΏΔ8FCࡳຈ

  20. None
  21. σϓϩΠ ΏΔ8FCࡳຈ  σϓϩΠ͸GBTUMBOFΛར༻ IUUQTGBTUMBOFUPPMT   8FC6*ΛҰ੾࢖ΘͣʹίϚϯυϥΠϯͰΞοϓϩʔυ͕Մೳ  JQB͸"QQ4UPSF$POOFDU΁

     ෼ఔ౓Ͱ5FTU'MJHIUʹ഑৴͞ΕΔ  BQL͸(PPHMF1MBZ΁  ෼ఔ౓Ͱ*OUFSOBM5FTUFS5SBDLʹొ࿥ͷํμ΢ϯϩʔυՄೳ
  22. σϓϩΠ ΏΔ8FCࡳຈ  όΠφϦ͚ͩͰ͸ͳ͘ɺΞϓϦͷετΞϖʔδ༻ͷϝλσʔλ ʢΞϓϦઆ໌ɺಈըɺεΫϦʔϯγϣοτͳͲʣ΋
 ΞοϓϩʔυՄೳ  (JU-BCҠߦͰΤϯδϯमਖ਼ˠσϓϩΠ·Ͱ໿෼
 ʢ·ͩ୹ॖͰ͖ͦ͏ʣ

  23. ΫϦΫϥͷΠϯϑϥΏΔ8FCࡳຈ  ΫϥΠΞϯτ
  "1* "84"1*ήʔτ΢ΣΠˠ-BNCEB 3%4 
  ήʔϜαʔόʔ

    &$%PDLFS
  24. ΫϥΠΞϯτ ΏΔ8FCࡳຈ  J04"OESPJE୺຤
  /JOUFOEP4XJUDI
  1$΋ ݱࡏ։ൃ༻ɺࠓޙ4UFBN഑৴༧ఆ

  25. "1* ΏΔ8FCࡳຈ  1)1ݴޠ -BNCEBͰQZUIPOˠ1)1   +40/σʔλ௨৴ͷΈ  Ϣʔβʔొ࿥ೝূ

     ΩϟϥΫλͷεςʔλεऔಘ  ήʔϜαʔόʔݕࡧ  ϥϯΫϚονͰͷਐ܉  ಈը޿ࠂϦϫʔυ՝ۚॲཧ ΫϥΠΞϯτଆ  ήʔϜαʔόʔొ࿥  Ϣʔβʔೝূ  ήʔϜ݁Ռ 
 ήʔϜαʔόʔଆ
  26. ήʔϜαʔόʔ ΏΔ8FCࡳຈ  $ ݴޠ  ਓͷؒͷ௨৴ʢύζϧృΓɺϨʔϯ੾Γସ͑౳ʣΛϦΞϧλΠϜͰڞ༗͢Δ  ύέοτ+40/σʔλ௨৴ʢ+40/௕͞όΠφϦσʔλ෇͖ʣ 

    ήʔϜαʔόʔ࣮ߦ͢Δͱ"1*ʹొ࿥ˠݕࡧ݁Ռʹग़Δ  ΫϥΠΞϯτ͕௚઀ιέοτ*1W 5$1ϙʔτͰ઀ଓ "1*ͳ͠   ΫϥΠΞϯτͷΞΫηετʔΫϯΛ୅ΘΓʹ"1*Ͱೝূ͢Δ  ήʔϜαʔόʔ͸"1*Ϣʔβʔͱͯ͠ಛผݖݶ͋ΔͨΊήʔϜ݁ՌͳͲͷؔ਺͸
 ΫϥΠΞϯτଆ͸Ͱ͖ͳ͍
  27. ήʔϜαʔόʔ ΏΔ8FCࡳຈ  ΫϦΫϥͷϏϧυ$*ͰήʔϜαʔόʔ͸%PDLFSΠϝʔδΛࣗಈతʹ ࡞੒͞ΕΔ  ݱࡏήʔϜαʔόʔ͸ͭ  "84ͷUNJDSPΠϯελϯεʢถࠃʣͰQSPEͱEFW 

    ։ൃதͷΫϦΫϥ͸EFWαʔόʔʹܨ͙  "MJCBCB$MPVEͷUMDNOBOPΠϯελϯεʢதࠃਂ㡕ʣʹQSPE  தࠃͷํʹ௨৴໰୊ΛղܾʢϥάάϨʔτɾϑΝΠΞ΢Υʔϧʣ
  28. ໰୊఺ະղܾ෦෼ΏΔ8FCࡳຈ  "OESPJEBQL͸&$ͰϏϧυ͞ΕΔͨΊɺࣗಈςετ͕ߦ͑ͳ͍  BQLΛࣾ಺αʔόʔʹసૹɺ࣮ػͰςετ͢ΔྲྀΕʁ  ཧ૝ͳͷ͸'JSFCBTF5FTU-BC  ࣾ಺Ͱछྨଟ͘ͷ࣮ػΛεέʔϧΞοϓ͢Δͷ͸ෆՄೳ 

    ͨͩɺ$'Τϯδϯࣗମ͕ݱࡏະରԠͰҠߦͰ͖ͳ͍  ͍ۙ͏ͪ͸"OESPJEΤϛϡϨʔλͰಈ͔͢༧ఆ
  29. ໰୊఺ະղܾ෦෼ΏΔ8FCࡳຈ  8JOEPXTϏϧυ͸ࣾ಺1$ͷిݯೖΕ੾Ε͸खಈɾɾɾ  %PDLFSGPS8JOEPXT͸·ͩ৭ʑෆຬ  NJDSPTPGUXJOEPXTTFSWFSDPSF EPUOFUGSBNFXPSL 
 74#VJME5PPMT(#

     EPDLFSNBDIJOF͕ݱࡏ8JOEPXT04ΛରԠ͍ͯ͠ͳ͍Β͘͠ɺ
 8JOEPXTͷ&$ΠϯελϯεΛ͏·্ཱͪ͛͘ΒΕͳ͍  ίετܰݮͷͨΊɺ8JOEPXT&$ΠϯελϯεʢϏϧυʹ͸UMBSHF͕ ࠷௿ݶʣ͸෇͚ͬ์͠ʹͨ͘͠ͳ͍
  30. ໰୊఺ະղܾ෦෼ΏΔ8FCࡳຈ  NBD04͸"84͕ݩʑରԠͯ͠ͳ͍ͷͰ࠷௿
 ࣾ಺ʹ୆ஔ͘ͷ͸࢓ํͳ͍
  GBTUMBOF͸εΫϦʔϯγϣοτΛࣗಈతʹ
 ࡱΕΔ͚ͲະͩʹͦͷػೳΛ࢖ͬͯͳ͍

  31. ·ͱΊ ΏΔ8FCࡳຈ  ໰୊఺͸͍ͭ͘࢒ͬͯΔ͚Ͳɺ(JU-BCʹҠߦͨ͠Β Ϗϧυ࣌ؒ൒ݮɺ৭ʑָʹ͸ͳͬͨ  %PDLFSಋೖͰΞϓϦέʔγϣϯʢήʔϜαʔόʔʣ ͷΠϯετʔϧͱΞοϓσʔτ͸ؾʹ͠ͳͯ͘Α͍  GBTUMBOF͸༏लʂ

  32. None
  33. $'ΤϯδϯΛ৮ͬͯΈ͍ͨํΛืूʂ
 
 ΏΔ8FCࡳຈ

  34. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·͢ʂ
 
 ΏΔ8FCࡳຈ