Slide 1

Slide 1 text

ϨόϨοδޮՌΛ΋ͨΒ͢ ࣗಈԽͷίπ

Slide 2

Slide 2 text

ࣗಈԽ͸ඇػೳཁ݅ • ϝϦοτ͕େ͖͍͜ͱཧղ͍ͯͯ͠΋༏ઌ౓Λ্͛ͯऔΓ૊Ή͜ͱ͕೉͠ ͍

Slide 3

Slide 3 text

ࣗಈԽ͸ϨόϨοδޮՌ͕͋Δ

Slide 4

Slide 4 text

ࣗಈԽͷखॱ खݩͷ࡞ۀΛ... ੔ཧͯ͠ίϚϯυϥΠϯԽ CIͳͲͰ࣮ߦ͢Δ

Slide 5

Slide 5 text

ࣗಈԽͷखॱ खݩͷ࡞ۀΛ... ੔ཧͯ͠ίϚϯυϥΠϯԽ CIͳͲͰ࣮ߦ͢Δ ͜Ε͕ϨόϨοδޮՌΛ͏Ή

Slide 6

Slide 6 text

ϨόϨοδޮՌΛੜΉࣗಈԽͷצͲ͜Ζ • ख࡞ۀ => ࣗಈ࣮ߦ • λεΫ͕ίϚϯυϥΠϯʹ੔ཧ͞ΕΔ • λεΫ͕੔ཧɾ෼ղ͞ΕΔ • λεΫ͕ίʔυͰදݱ͞ΕΔʢʓʓ as a codeʣ • ܁Γฦ࣮͠ߦՄೳʹͳΔ • τϥοΩϯά͕Մೳ • ෼ۀՄೳʹͳΔ • ࣮ߦ؀ڥ͕҆ఆ͢Δ

Slide 7

Slide 7 text

ϨόϨοδޮՌΛੜΉࣗಈԽͷצͲ͜Ζ • ख࡞ۀ => ࣗಈ࣮ߦ • λεΫ͕ίϚϯυϥΠϯʹ੔ཧ͞ΕΔ • λεΫ͕੔ཧɾ෼ղ͞ΕΔ • λεΫ͕ίʔυͰදݱ͞ΕΔʢʓʓ as a codeʣ • ܁Γฦ࣮͠ߦՄೳʹͳΔ • τϥοΩϯά͕Մೳ • ෼ۀՄೳʹͳΔ • ࣮ߦ؀ڥ͕҆ఆ͢Δ

Slide 8

Slide 8 text

λεΫΛίʔυͰදݱ͢Δʢʓʓ as a codeʣ

Slide 9

Slide 9 text

λεΫΛίʔυͰදݱ͢Δʢʓʓ as a codeʣ

Slide 10

Slide 10 text

λεΫΛίʔυͰදݱ͢Δʢʓʓ as a codeʣ

Slide 11

Slide 11 text

λεΫΛίʔυͰදݱ͢Δʢʓʓ as a codeʣ • ࣗಈԽ͕ՄೳʹͳΔ

Slide 12

Slide 12 text

λεΫΛίʔυͰදݱ͢Δʢʓʓ as a codeʣ • ࣗಈԽ͕ՄೳʹͳΔ • ୭Ͱ΋࣮ߦՄೳʹͳΔ • ಡΊ͹Θ͔ΔΑ͏ʹͳΔ • ؀ڥ͕҆ఆ͢Δ • etc.

Slide 13

Slide 13 text

ࣗಈԽͷखॱ खݩͷ࡞ۀΛ... ੔ཧͯ͠ίϚϯυϥΠϯԽ CIͳͲͰ࣮ߦ͢Δ

Slide 14

Slide 14 text

λεΫΛίʔυͰදݱ͢Δʢʓʓ as a codeʣ • มߋ؅ཧ͕ՄೳʹͳΔ • τϥοΩϯάՄೳʹͳΔ • ࠶ݱՄೳʹͳΔ • etc.

Slide 15

Slide 15 text

ࣗಈԽͷखॱ खݩͷ࡞ۀΛ... ੔ཧͯ͠ίϚϯυϥΠϯԽ CIͳͲͰ࣮ߦ͢Δ

Slide 16

Slide 16 text

ࣗಈԽͷखॱ खݩͷ࡞ۀΛ... ੔ཧͯ͠ίϚϯυϥΠϯԽ CIͳͲͰ࣮ߦ͢Δ

Slide 17

Slide 17 text

λεΫ࣮ߦ؀ڥͱͯ͠ͷBitrise • ϫʔΫϑϩʔͱτϦΨʔͷ࢓૊Έ͕ॊೈͰڧྗ • εέδϡʔϧ࣮ߦ͕ʢ͓ͦΒ͘ʣແݶʹఆٛͰ͖Δ • Web UI͕ศར

Slide 18

Slide 18 text

λεΫ࣮ߦ؀ڥͱͯ͠ͷBitrise • ϩά͕ݟͮΒ͍ • ίϚϯυϥΠϯͰͰ͖Δૢ࡞͕গͳ͍ • ίϛοτ୯ҐͰ࣮ߦΛεΩοϓ͠ʹ͍͘

Slide 19

Slide 19 text

Bitriseͷόϥϯεͷ͍͍ར༻ͷίπ • ϒϥϯνͱϫʔΫϑϩʔΛ໊લϧʔϧͰϚοϐϯά͢Δͱศར • ࣮ߦͷίετ͕͍҆ͷͰࣦഊΛؾʹͤͣʹϦτϥΠͰϦΧόʔ͢Δ • σόοά͸େมͳͷͰૉ௚ʹ࣮ߦ͞ΕΔΑ͏ʹ͢Δ • όϦΤʔγϣϯ͸τϦΨʔͱϒϥϯνͷ૊Έ߹ΘͤͰ࣮ݱ͢Δ

Slide 20

Slide 20 text

GitHubΛத৺ͱ͢ΔࣗಈԽͷγεςϜ • τϦΨʔͱͯ͠ͷPR • ςετ؀ڥͱͯ͠ͷϒϥϯν • λεΫͷมߋ؅ཧ • ࣮ߦ݁Ռͷอଘɾ؅ཧ • ϑΝΠϧஔ͖৔ͱͯ͠ͷGitHub • Ծ૝࣮ߦ؀ڥͱͯ͠ͷCI

Slide 21

Slide 21 text

• deliver • deliver-internal • deliver-external • nightly-build • update-license-plist • refresh-dSYMs • test • sync-bitrise-yml • renew-build-cache • update-dependencies • update-tools • nightly-tests App Store Connect/Fabric΁ͷ഑৴ masterͰϑϧϏϧυ͢Δ ͢΂ͯͷςετΛ࣮ߦ OSSͷϥΠηϯε৘ใͷߋ৽ dSYMͷΞοϓϩʔυ PR͝ͱͷςετ Bitrise.ymlͷμ΢ϯϩʔυ ϥΠϒϥϦͷࣗಈߋ৽ πʔϧͷࣗಈߋ৽ ϏϧυΩϟογϡͷΫϦʔχϯά

Slide 22

Slide 22 text

• deliver • deliver-internal • deliver-external • nightly-build • update-license-plist • refresh-dSYMs • test • sync-bitrise-yml • renew-build-cache • update-dependencies • update-tools • nightly-tests App Store Connect/Fabric΁ͷ഑৴ masterͰϑϧϏϧυ͢Δ ͢΂ͯͷςετΛ࣮ߦ OSSͷϥΠηϯε৘ใͷߋ৽ dSYMͷΞοϓϩʔυ PR͝ͱͷςετ Bitrise.ymlͷμ΢ϯϩʔυ ϥΠϒϥϦͷࣗಈߋ৽ πʔϧͷࣗಈߋ৽ ϏϧυΩϟογϡͷΫϦʔχϯά Ϗϧυ؀ڥͷ҆ఆԽ ϦϦʔε͕τϥοΩϯάՄೳ ୭Ͱ΋ɾͲ͜Ͱ΋ɾ͍ͭͰ΋ϦϦʔεՄೳ Ϗϧυ؀ڥ as a code Ϗϧυʹඞཁͳ΋ͷ Ϗϧυखॱ ґଘؔ܎ ෆ۩߹͕ग़ͨͱ͖ͷௐࠪ ؀ڥͷมߋͷτϥοΩϯά

Slide 23

Slide 23 text

ϏϧυɾςετͷࣗಈԽ $ brew update $ brew reinstall "carthage" $ bundle install --path=vendor/bundle --binstubs=vendor/bin $ bundle exec fastlane download_build_cache $ Scripts/build_carthage $ Scripts/build_pods $ bundle exec fastlane folio_tests $ set -o pipefail && xcodebuild test -workspace Folio.xcworkspace -scheme Folio-Release-Staging -destination 'name=iPhone X,OS=11.4' -only-testing:FolioTests -derivedDataPath DerivedData -enableCodeCoverage YES ENABLE_TESTABILITY=YES | xcpretty

Slide 24

Slide 24 text

ϦϦʔεϏϧυɾ഑৴ͷࣗಈԽ $ brew update $ brew reinstall "carthage" $ bundle install --path=vendor/bundle --binstubs=vendor/bin $ bundle exec fastlane download_build_cache $ Scripts/build_carthage $ Scripts/build_pods $ bundle exec fastlane folio_tests $ set -o pipefail && xcodebuild test -workspace Folio.xcworkspace -scheme Folio-Release-Staging -destination 'name=iPhone X,OS=11.4' -only-testing:FolioTests -derivedDataPath DerivedData -enableCodeCoverage YES ENABLE_TESTABILITY=YES | xcpretty

Slide 25

Slide 25 text

ɹϥΠϒϥϦͷࣗಈߋ৽

Slide 26

Slide 26 text

OpenAPI (Swagger)ͷࣗಈੜ੒

Slide 27

Slide 27 text

OpenAPI (Swagger)ͷࣗಈੜ੒

Slide 28

Slide 28 text

Bitrise.ymlͷಉظ

Slide 29

Slide 29 text

ɹϥΠϒϥϦͷϏϧυͱΩϟογϡ

Slide 30

Slide 30 text

ɹϥΠϒϥϦͷϏϧυͱΩϟογϡ

Slide 31

Slide 31 text

ΫϦʔϯͳԾ૝؀ڥͱͯ͠ͷBitrise

Slide 32

Slide 32 text

·ͱΊ • λεΫΛίʔυͰදݱ͢Δ͜ͱͰϨόϨοδ͕ޮ͘ • BitriseΛ࢖͏৔߹͸ɺGitHubΛτϦΨʔ΍࣮ߦͷίϯτϩʔϧͱͯ͠࢖͏ ͱόϥϯε͕͍͍ • Bitrise͸ΫϦʔϯͳϏϧυ؀ڥͱͯ͠ར༻Ͱ͖ΔʢAlt Dockerʁʣ • ࣗಈԽΛಥ͖٧ΊΔͱখ͞ͳίετͰେ͖ͳϝϦοτ͕ಘΒΕΔ

Slide 33

Slide 33 text

Reference https://blog.kishikawakatsumi.com/entry/2019/06/19/160150