Bitrise User Group Meetup #2での発表スライド https://bitrise-japan.connpass.com/event/141052/
BitriseͰFastlane/GradleϓϥάΠϯͷ ౷߹ςετ2019/09/03 Bitrise User Group Meetup #2Ճ݈ଠ @Kesin11
View Slide
ࣗݾհ• ॴଐɿDeNAͷSWETνʔϜ• Twitterɿ@Kesin11• GitHubɿKesin11• ͓ࣄɿݱࡏCI/CD׆༻αϙʔτɺؔ࿈ٕज़ͳͲͷݕূ• લ·ͰQAνʔϜͷࣗಈԽαϙʔτ
ϓϥοτϑΥʔϜ͔Β ϦδΣΫτ͞ΕΔϦεΫΛνΣοΫͰ͖ΔࣾπʔϧΛ࡞͠·ͨ͠
ͱ͍͏ΛiOSDC 2019Ͱ͢Δ༧ఆͰ͢• ࠓͦͷπʔϧͷCI/CDͷhttps://fortee.jp/iosdc-japan-2019/proposal/d51e7062-2eb1-4a86-bf5f-4928fa3b04c8
AppChecker͕νΣοΫ͢Δ༰• iOS• XcodeɺiOS SDK͕ཁٻόʔδϣϯҎ্͔• PrivateFrameworkΛ͍ͬͯͳ͍͔• Android• targetSdkVersion͕ཁٻόʔδϣϯҎ্͔• ෆඞཁʹϓϥΠόγʔʹ݁͢ΔpermissionΛऔಘ͍ͯ͠ͳ͍͔• ৄ͍͠iOSDCͰʂ
ࣾͰ͘ΘΕΔπʔϧͷͨΊςετ͔ͬ͠Γॻ͍͍ͯ͘
Ϣχοτςετ
Ϣχοτςετ• ֎෦ͷґଘmockʢٛʣ͢Δ• ྫ: XcodeͷόʔδϣϯipaͷInfo.plistͷΛνΣοΫ͍ͯ͠Δ• DTXcode: "1010" -> Xcode 10.1ͰϏϧυ͞Εͨ• Info.plistΛύʔεͯ͠࡞ΒΕͨGem::VersionΦϒδΣΫτΛ༻ͯ͠ Ϗϧυͨ͠Xcodeͷόʔδϣϯ͕ݹ͗͢ͳ͍͔νΣοΫ• ςετͰμϛʔͷͰੜͨ͠Gem::VersionΦϒδΣΫτΛ༻ͯ͠όʔδϣϯൺֱͷϩδοΫ͕ਖ਼͍͜͠ͱΛݕূ• ຊͷInfo.plistΛ༻ҙ͠ͳͯ͘ϩδοΫͷςετ͕Ͱ͖Δ
ϢχοτςετͰΧόʔ Ͱ͖ͳ͍͜ͱ
ϢχοτςετͰΧόʔͰ͖ͳ͍͜ͱ• ࣮ࡍʹπʔϧΛ࣮ߦͯ͠Τϥʔ͕ى͖ͳ͍͔• ༷ʑͳ֎෦πʔϧΛݺͼग़͍ͯ͠ΔͷͰ݁ߏෆ҆• unzip, grep, xcrun, otoolͳͲ• Ϗϧυڥ͕৽͘͠ͳͬͨ߹ʹΤϥʔ͕ى͖ͳ͍͔• ಛʹXcodeͷόʔδϣϯΛ্͛ͨͱ͖
AppCheckerͷछྨ• iOS• FastlaneϓϥάΠϯɺgemελϯυΞϩϯ൛• Android• GradleϓϥάΠϯɺgemελϯυΞϩϯ൛• ελϯυΞϩϯ൛͕ඞཁͳཧ༝• Fastlane/GradleΛ༻͍ͯ͠ͳ͍ήʔϜλΠτϧ༻
AppCheckerͷछྨ• όϦΤʔγϣϯ͕ଟ͍• ߴ͍҆ఆੑ͕ٻΊΒΕ͍ͯΔ• ଞνʔϜͷϏϧυϑϩʔʹΈࠐΜͰΒ͏ͨΊ• νΣοΫϩδοΫશͯϢχοτςετΛ ॻ͍͕ͨͦΕͰෆ҆
BitriseͰ౷߹ςετLogo by https://www.bitrise.io/presskit
BitriseͰ౷߹ςετ• pull-req͝ͱʹ࣮ࡍͷipa/apkʹରͯ͠AppCheckerΛ࣮ߦ• Τϥʔແ͠ͰͰ͖Δ͔• νΣοΫ݁ՌͷHTMLϨϙʔτ͕ੜ͞Ε͍ͯΔ͔• αϯϓϧΞϓϦΛຖճϏϧυͯ͠ipa/apkΛੜ• BitriseͰςετ͘͢͢͠ΔͨΊʹΞϓϦͷίʔυAppCheckerͷϦϙδτϦʹؚΊͯ͠·͏ํࣜ
BitriseͰ౷߹ςετʢiOSʣ1.FastlaneϓϥάΠϯΛϩʔΧϧ͔ΒΠϯετʔϧ2.αϯϓϧΞϓϦϏϧυ3.Fastlane൛Λ࣮ߦ4.ελϯυΞϩϯ൛Λ࣮ߦ5.exit 0 && HTMLϨϙʔτ͕ੜ͞Ε͍ͯΔ͜ͱΛ֬ೝ
BitriseͰ౷߹ςετʢAndroidʣ1.gradlew publishToMavenLocalͰϩʔΧϧmavenʹpublish2.αϯϓϧΞϓϦϏϧυ + AppCheckerΛ࣮ߦ3.ελϯυΞϩϯ൛Λ࣮ߦ4.exit 0 && HTMLϨϙʔτ͕ੜ͞Ε͍ͯΔ͜ͱΛ֬ೝ
BitriseͰ౷߹ςετʢAndroidʣ2.αϯϓϧΞϓϦϏϧυ + AppCheckerΛ࣮ߦ3.ελϯυΞϩϯ൛Λ࣮ߦ4.exit 0 && HTMLϨϙʔτ͕ੜ͞Ε͍ͯΔ͜ͱΛ֬ೝ
BitriseͰ౷߹ςετʢAndroidʣ1.publishToMavenLocalͰϩʔΧϧmavenʹpublish2.αϯϓϧΞϓϦϏϧυ + AppCheckerΛ࣮ߦ3.ελϯυΞϩϯ൛Λ࣮ߦ4.exit 0 && HTMLϨϙʔτ͕ੜ͞Ε͍ͯΔ͜ͱΛ֬ೝ
खݩͰࢼ͞ͳͯ͘ ҆৺ͯ͠Ϛʔδ Ͱ͖ΔΑ͏ʹͳΓ·ͨ͠
҆৺ͯ͠։ൃͰ͖ΔΑ͏ʹͳͬͨͷͰϦϦʔε࡞ۀࣗಈԽ
ϒϥϯνઓུ• feature, develop, master• ػೳ։ൃpull-reqɿdevelop <- feature• ౷߹ςετΛ࣮ߦ• ϦϦʔεpull-reqɿmaster <- develop• ࣗಈϦϦʔε࡞ۀ
ϦϦʔε࡞ۀͷࣗಈԽ• iOSgithubɺAndroidࣾmaven• masterϚʔδͰόʔδϣϯ൪߸Λ୯७૿Ճ• ྫ: 1.13.0 -> 1.14.0• ηϚϯςΟοΫόʔδϣχϯάෆཁ• ϓϥοτϑΥʔϜଆͷ࠷৽ࣄʹରԠ͢ΔͨΊɺ ৗʹ࠷৽൛Λ͏લఏ
ϦϦʔε࡞ۀͷࣗಈԽ• gemͱgradleͷόʔδϣϯΛߋ৽• gemόʔδϣϯߋ৽ɿBump::Bump.next_version("minor")• ଞͷඞཁͳϑΝΠϧΛਖ਼نදݱͰॻ͖͑• iOSɿmasterʹpush• Androidɿࣾmavenʹpublish• git tagΛ࡞ͯ͠push
ϦϦʔεϊʔτͷ࡞• GitHubͷϦϦʔεϖʔδ͔ΒλάΛબ• ϦϦʔεϊʔτΛॻ͘ʢ·ͩखಈ...ʣ
·ͱΊ• Fastlane/GradleϓϥάΠϯͷ౷߹ςετͱ ϦϦʔεࣗಈԽΛBitriseͰ࣮ݱ• Ϗϧυͱಉ͡ڥͰςετ͍ͯ͠ΔͷͰ҆৺• Ϣχοτςετɺ౷߹ςετΛదʹ͍͚·͠ΐ͏