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

BitriseでFastlane/Gradleプラグインの統合テスト

9bcd328daf60fe29dc9970f6cfc26730?s=47 Kenta Kase
September 03, 2019

 BitriseでFastlane/Gradleプラグインの統合テスト

Bitrise User Group Meetup #2での発表スライド
https://bitrise-japan.connpass.com/event/141052/

9bcd328daf60fe29dc9970f6cfc26730?s=128

Kenta Kase

September 03, 2019
Tweet

Transcript

  1. BitriseͰFastlane/ GradleϓϥάΠϯͷ
 ౷߹ςετ 2019/09/03 Bitrise User Group Meetup #2 Ճ੉݈ଠ

    @Kesin11
  2. ࣗݾ঺հ • ॴଐɿDeNAͷSWETνʔϜ • Twitterɿ@Kesin11 • GitHubɿKesin11 • ͓࢓ࣄɿݱࡏ͸CI/CD׆༻αϙʔτɺؔ࿈ٕज़ͳͲͷ ݕূ

    • ൒೥લ·Ͱ͸QAνʔϜͷࣗಈԽαϙʔτ
  3. ϓϥοτϑΥʔϜ͔Β
 ϦδΣΫτ͞ΕΔϦεΫΛ νΣοΫͰ͖Δࣾ಺πʔϧΛ ࡞੒͠·ͨ͠

  4. ͱ͍͏࿩ΛiOSDC 2019Ͱ͢Δ ༧ఆͰ͢ • ࠓ೔͸ͦͷπʔϧͷCI/CDͷ࿩ https://fortee.jp/iosdc-japan-2019/proposal/d51e7062-2eb1-4a86-bf5f-4928fa3b04c8

  5. AppChecker͕νΣοΫ͢Δ಺༰ • iOS • XcodeɺiOS SDK͕ཁٻόʔδϣϯҎ্͔ • PrivateFrameworkΛ࢖͍ͬͯͳ͍͔ • Android

    • targetSdkVersion͕ཁٻόʔδϣϯҎ্͔ • ෆඞཁʹϓϥΠόγʔʹ௚݁͢ΔpermissionΛऔಘ͍ͯ͠ͳ͍͔ • ৄ͍͠࿩͸iOSDCͰʂ
  6. ࣾ಺Ͱ޿͘࢖ΘΕΔπʔϧͷͨΊ ςετ΋͔ͬ͠Γॻ͍͍ͯ͘

  7. Ϣχοτςετ

  8. Ϣχοτςετ • ֎෦ͷґଘ͸mockʢ޿ٛʣ͢Δ • ྫ: Xcodeͷόʔδϣϯ͸ipaͷInfo.plistͷ஋ΛνΣοΫ͍ͯ͠Δ • DTXcode: "1010" ->

    Xcode 10.1ͰϏϧυ͞Εͨ • Info.plistΛύʔεͯ͠࡞ΒΕͨGem::VersionΦϒδΣΫτΛ࢖༻ͯ͠
 Ϗϧυͨ͠Xcodeͷόʔδϣϯ͕ݹ͗͢ͳ͍͔νΣοΫ • ςετͰ͸μϛʔͷ஋Ͱੜ੒ͨ͠Gem::VersionΦϒδΣΫτΛ࢖༻ͯ͠ όʔδϣϯൺֱͷϩδοΫ͕ਖ਼͍͜͠ͱΛݕূ • ຊ෺ͷInfo.plistΛ༻ҙ͠ͳͯ͘΋ϩδοΫͷςετ͕Ͱ͖Δ
  9. ϢχοτςετͰΧόʔ
 Ͱ͖ͳ͍͜ͱ

  10. ϢχοτςετͰΧόʔͰ͖ͳ ͍͜ͱ • ࣮ࡍʹπʔϧΛ࣮ߦͯ͠Τϥʔ͕ى͖ͳ͍͔ • ༷ʑͳ֎෦πʔϧΛݺͼग़͍ͯ͠ΔͷͰ݁ߏෆ҆ • unzip, grep, xcrun,

    otoolͳͲ • Ϗϧυ؀ڥ͕৽͘͠ͳͬͨ৔߹ʹΤϥʔ͕ى͖ͳ͍͔ • ಛʹXcodeͷόʔδϣϯΛ্͛ͨͱ͖
  11. AppCheckerͷछྨ • iOS • FastlaneϓϥάΠϯɺgemελϯυΞϩϯ൛ • Android • GradleϓϥάΠϯɺgemελϯυΞϩϯ൛ •

    ελϯυΞϩϯ൛͕ඞཁͳཧ༝ • Fastlane/GradleΛ࢖༻͍ͯ͠ͳ͍ήʔϜλΠτϧ༻
  12. AppCheckerͷछྨ • όϦΤʔγϣϯ͕ଟ͍ • ߴ͍҆ఆੑ͕ٻΊΒΕ͍ͯΔ • ଞνʔϜͷϏϧυϑϩʔʹ૊ΈࠐΜͰ΋Β͏ͨΊ • νΣοΫϩδοΫ͸શͯϢχοτςετΛ
 ॻ͍͕ͨͦΕͰ΋ෆ҆

  13. BitriseͰ౷߹ςετ Logo by https://www.bitrise.io/presskit

  14. BitriseͰ౷߹ςετ • pull-req͝ͱʹ࣮ࡍͷipa/apkʹରͯ͠AppCheckerΛ࣮ߦ • Τϥʔແ͠Ͱ׬૸Ͱ͖Δ͔ • νΣοΫ݁ՌͷHTMLϨϙʔτ͕ੜ੒͞Ε͍ͯΔ͔ • αϯϓϧΞϓϦΛຖճϏϧυͯ͠ipa/apkΛੜ੒ •

    BitriseͰςετ͠΍͘͢͢ΔͨΊʹΞϓϦͷίʔυ͸ AppCheckerͷϦϙδτϦ಺ʹؚΊͯ͠·͏ํࣜ
  15. BitriseͰ౷߹ςετʢiOSʣ 1.FastlaneϓϥάΠϯΛϩʔΧϧ͔ΒΠϯετʔϧ 2.αϯϓϧΞϓϦϏϧυ 3.Fastlane൛Λ࣮ߦ 4.ελϯυΞϩϯ൛Λ࣮ߦ 5.exit 0 && HTMLϨϙʔτ͕ੜ੒͞Ε͍ͯΔ͜ͱΛ֬ೝ

  16. BitriseͰ౷߹ςετʢiOSʣ 1.FastlaneϓϥάΠϯΛϩʔΧϧ͔ΒΠϯετʔϧ 2.αϯϓϧΞϓϦϏϧυ 3.Fastlane൛Λ࣮ߦ 4.ελϯυΞϩϯ൛Λ࣮ߦ 5.exit 0 && HTMLϨϙʔτ͕ੜ੒͞Ε͍ͯΔ͜ͱΛ֬ೝ

  17. BitriseͰ౷߹ςετʢiOSʣ 1.FastlaneϓϥάΠϯΛϩʔΧϧ͔ΒΠϯετʔϧ 2.αϯϓϧΞϓϦϏϧυ 3.Fastlane൛Λ࣮ߦ 4.ελϯυΞϩϯ൛Λ࣮ߦ 5.exit 0 && HTMLϨϙʔτ͕ੜ੒͞Ε͍ͯΔ͜ͱΛ֬ೝ

  18. BitriseͰ౷߹ςετʢiOSʣ 1.FastlaneϓϥάΠϯΛϩʔΧϧ͔ΒΠϯετʔϧ 2.αϯϓϧΞϓϦϏϧυ 3.Fastlane൛Λ࣮ߦ 4.ελϯυΞϩϯ൛Λ࣮ߦ 5.exit 0 && HTMLϨϙʔτ͕ੜ੒͞Ε͍ͯΔ͜ͱΛ֬ೝ

  19. BitriseͰ౷߹ςετʢAndroidʣ 1.gradlew publishToMavenLocalͰϩʔΧϧ mavenʹpublish 2.αϯϓϧΞϓϦϏϧυ + AppCheckerΛ࣮ߦ 3.ελϯυΞϩϯ൛Λ࣮ߦ 4.exit 0

    && HTMLϨϙʔτ͕ੜ੒͞Ε͍ͯΔ͜ͱΛ ֬ೝ
  20. BitriseͰ౷߹ςετʢAndroidʣ 1.gradlew publishToMavenLocalͰϩʔΧϧ mavenʹpublish 2.αϯϓϧΞϓϦϏϧυ + AppCheckerΛ࣮ߦ 3.ελϯυΞϩϯ൛Λ࣮ߦ 4.exit 0

    && HTMLϨϙʔτ͕ੜ੒͞Ε͍ͯΔ͜ͱΛ ֬ೝ
  21. BitriseͰ౷߹ςετʢAndroidʣ 2.αϯϓϧΞϓϦϏϧυ + AppCheckerΛ࣮ߦ 3.ελϯυΞϩϯ൛Λ࣮ߦ 4.exit 0 && HTMLϨϙʔτ͕ੜ੒͞Ε͍ͯΔ͜ ͱΛ֬ೝ

  22. BitriseͰ౷߹ςετʢAndroidʣ 1.publishToMavenLocalͰϩʔΧϧmavenʹ publish 2.αϯϓϧΞϓϦϏϧυ + AppCheckerΛ࣮ߦ 3.ελϯυΞϩϯ൛Λ࣮ߦ 4.exit 0 &&

    HTMLϨϙʔτ͕ੜ੒͞Ε͍ͯΔ͜ͱ Λ֬ೝ
  23. खݩͰࢼ͞ͳͯ͘΋
 ҆৺ͯ͠Ϛʔδ
 Ͱ͖ΔΑ͏ʹͳΓ·ͨ͠

  24. ҆৺ͯ͠։ൃͰ͖ΔΑ͏ʹ ͳͬͨͷͰ ϦϦʔε࡞ۀ΋ࣗಈԽ

  25. ϒϥϯνઓུ • feature, develop, master • ػೳ։ൃpull-reqɿdevelop <- feature •

    ౷߹ςετΛ࣮ߦ • ϦϦʔεpull-reqɿmaster <- develop • ࣗಈϦϦʔε࡞ۀ
  26. ϦϦʔε࡞ۀͷࣗಈԽ • iOS͸githubɺAndroid͸ࣾ಺maven • masterϚʔδͰόʔδϣϯ൪߸Λ୯७૿Ճ • ྫ: 1.13.0 -> 1.14.0

    • ηϚϯςΟοΫόʔδϣχϯά͸ෆཁ • ϓϥοτϑΥʔϜଆͷ࠷৽ࣄ৘ʹରԠ͢ΔͨΊɺ
 ৗʹ࠷৽൛Λ࢖͏લఏ
  27. ϦϦʔε࡞ۀͷࣗಈԽ • gemͱgradleͷόʔδϣϯΛߋ৽ • gemόʔδϣϯߋ৽ɿBump::Bump.next_version("minor") • ଞͷඞཁͳϑΝΠϧΛਖ਼نදݱͰॻ͖׵͑ • iOSɿmasterʹpush •

    Androidɿࣾ಺mavenʹpublish • git tagΛ࡞੒ͯ͠push
  28. ϦϦʔεϊʔτͷ࡞੒ • GitHubͷϦϦʔεϖʔδ͔ΒλάΛબ୒ • ϦϦʔεϊʔτΛॻ͘ʢ·ͩखಈ...ʣ

  29. ·ͱΊ • Fastlane/GradleϓϥάΠϯͷ౷߹ςετͱ
 ϦϦʔεࣗಈԽΛBitriseͰ࣮ݱ • Ϗϧυͱಉ͡؀ڥͰςετ͍ͯ͠ΔͷͰ҆৺ • Ϣχοτςετɺ౷߹ςετΛద੾ʹ࢖͍෼ ͚·͠ΐ͏