$30 off During Our Annual Pro Sale. View Details »

400種類のアプリを毎日ビルドする自動化の技術

 400種類のアプリを毎日ビルドする自動化の技術

400種類のアプリを毎日ビルドする自動化の技術
1. ビルド・申請作業とは
2. 既存のワークフローと関係者
3. 課題の整理
4. 自動化の目的とゴール
5. 自動化の内容と技術的な手法
6. 効果的に自動化を進めるためのベストプラクティス

w/ Presenter Note
https://www.icloud.com/keynote/0xAxiOjmcpRfjqSdlwcJSrspg#iOSDC_2020_-_Yappli

Kishikawa Katsumi

September 20, 2020
Tweet

More Decks by Kishikawa Katsumi

Other Decks in Programming

Transcript

  1. Kishikawa Katsumi
    400छྨͷΞϓϦΛຖ೔Ϗϧυ͢Δ
    ࣗಈԽͷٕज़

    View Slide

  2. View Slide

  3. View Slide

  4. ໨࣍
    1. Ϗϧυɾਃ੥࡞ۀͱ͸

    2. طଘͷϫʔΫϑϩʔͱؔ܎ऀ

    3. ՝୊ͷ੔ཧ

    4. ࣗಈԽͷ໨తͱΰʔϧ

    5. ࣗಈԽͷ಺༰ͱٕज़తͳख๏

    6. ޮՌతʹࣗಈԽΛਐΊΔͨΊͷϕετϓϥΫςΟε

    View Slide

  5. Ϗϧυɾਃ੥࡞ۀͱ͸

    View Slide

  6. Ϗϧυɾਃ੥࡞ۀͱ͸
    1. YappliͷCMSʹొ࿥͞Εͨ৘ใΛऔಘ

    2. ΞϓϦ͝ͱʹXcodeϓϩδΣΫτΛੜ੒

    3. ύοέʔδΛϏϧυ

    4. App Store ConnectʹΞοϓϩʔυ

    5. ৹ࠪఏग़

    6. Push௨஌ͷূ໌ॻͷ࡞੒ɾ഑ஔ

    View Slide

  7. طଘͷϫʔΫϑϩʔͱؔ܎ऀ

    View Slide

  8. طଘͷϫʔΫϑϩʔͱؔ܎ऀ
    CMS
    ؅ཧπʔϧ
    App Store Connect
    Circle CI
    JIRA
    AWS S3
    Developer Portal
    ϏϧυϚγϯ
    Google Sheets
    ͓٬͞· ୲౰ऀ
    ΤϯδχΞ

    View Slide

  9. طଘͷϫʔΫϑϩʔʢʴखॱʣͱؔ܎ऀ
    CMS
    ؅ཧπʔϧ
    App Store Connect
    Circle CI
    JIRA
    ϏϧυϚγϯ
    Google Sheets
    AWS S3
    ͓٬͞· ୲౰ऀ
    ΤϯδχΞ
    Developer Portal

    View Slide

  10. طଘͷϫʔΫϑϩʔʢʴखॱʣͱؔ܎ऀ
    CMS
    ؅ཧπʔϧ
    App Store Connect
    Circle CI
    JIRA
    ϏϧυϚγϯ
    Google Sheets
    AWS S3
    ͓٬͞· ୲౰ऀ
    ΤϯδχΞ
    Developer Portal

    View Slide

  11. طଘͷϫʔΫϑϩʔʢʴखॱʣͱؔ܎ऀ
    CMS
    ؅ཧπʔϧ
    App Store Connect
    Circle CI
    JIRA
    ϏϧυϚγϯ
    Google Sheets
    AWS S3
    ͓٬͞· ୲౰ऀ
    ΤϯδχΞ
    Developer Portal

    View Slide

  12. طଘͷϫʔΫϑϩʔʢʴखॱʣͱؔ܎ऀ
    CMS
    ؅ཧπʔϧ
    App Store Connect
    Circle CI
    JIRA
    ϏϧυϚγϯ
    Google Sheets
    AWS S3
    ͓٬͞· ୲౰ऀ
    ΤϯδχΞ
    Developer Portal

    View Slide

  13. طଘͷϫʔΫϑϩʔʢʴखॱʣͱؔ܎ऀ
    CMS
    ؅ཧπʔϧ
    App Store Connect
    Circle CI
    JIRA
    ϏϧυϚγϯ
    Google Sheets
    AWS S3
    ͓٬͞· ୲౰ऀ
    ΤϯδχΞ
    Developer Portal

    View Slide

  14. طଘͷϫʔΫϑϩʔʢʴखॱʣͱؔ܎ऀ
    CMS
    ؅ཧπʔϧ
    App Store Connect
    Circle CI
    JIRA
    Developer Portal
    ϏϧυϚγϯ
    Google Sheets
    AWS S3
    ͓٬͞· ୲౰ऀ
    ΤϯδχΞ

    View Slide

  15. ՝୊ͷ੔ཧ
    • ֤खॱ͸ͦͦࣗ͜͜ಈԽ͞Ε͍ͯΔ΋ͷͷ

    ؒͷख࡞ۀ͕ଟ͍

    View Slide

  16. ՝୊ͷ੔ཧ
    • ֤खॱ͸ͦͦࣗ͜͜ಈԽ͞Ε͍ͯΔ΋ͷͷ

    ؒͷख࡞ۀ͕ଟ͍
    • YappliଆͰิ׬͕ඞཁͳ৘ใΛख࡞ۀͰೖྗ͍ͯ͠Δ

    View Slide

  17. CMSʢʹ؅ཧը໘ʣʹొ࿥͞Ε͍ͯΔ৘ใ
    ΞϓϦ໊
    ΞΠίϯ
    ΞϓϦͷઆ໌ɾΩʔϫʔυͳͲ
    εΫϦʔϯγϣοτ
    URLεΩʔϜ
    ༗ޮͳػೳɾSDK
    όϯυϧID
    ձ໊ࣾʢνʔϜ໊ʣ
    όʔδϣϯ
    Ϗϧυ൪߸
    λάʢϒϥϯνʣ
    ͓٬͞·
    ୲౰ऀ
    ΤϯδχΞ

    View Slide

  18. ՝୊ͷ੔ཧ
    • ֤खॱ͸ͦͦࣗ͜͜ಈԽ͞Ε͍ͯΔ΋ͷͷ

    ؒͷख࡞ۀ͕ଟ͍
    • YappliଆͰิ׬͕ඞཁͳ৘ใΛख࡞ۀͰೖྗ͍ͯ͠Δ

    • ؒҧ͍͕ى͜Γ΍͍͢

    • ֬ೝɾగਖ਼ɾϦτϥΠͷखؒ

    View Slide

  19. ՝୊ͷ੔ཧ
    • ख࡞ۀ͕ଟ͍

    • ಉ͡৘ใΛෳ਺ͷਓ͕ؒมߋ͢ΔաఔͰޡΓ͕ࠞೖ͢Δ

    • ॲཧͷه࿥ɾมߋཤྺ͕ͳ͍ͷͰؒҧ͍ʹؾͮ͘͜ͱ͕஗ΕΔ

    • ࣦഊɾमਖ਼ͷαΠΫϧ͕௕͍

    • ಛఆͷϚγϯʹϩάΠϯ͢Δඞཁ͕͋Δ

    View Slide

  20. ࣗಈԽͷ໨తɾΰʔϧ
    • ख࡞ۀ͕ଟ͍

    • ಉ͡৘ใΛෳ਺ͷਓ͕ؒมߋ͢Δ

    • ॲཧͷه࿥ɾมߋཤྺ͕ͳ͍

    • ಛఆͷϚγϯʹϩάΠϯ͢Δඞཁ͕͋Δ

    View Slide

  21. ࣗಈԽͷ໨తɾΰʔϧ
    • ख࡞ۀΛͳ͘͢

    • ৘ใͷมߋखॱΛ੔ཧ͢Δ

    • ॲཧͷه࿥ɾมߋཤྺΛ஝ੵ͢Δ

    • ͢΂ͯͷॲཧΛCIαʔϏε্Ͱ࣮ߦ͢Δ

    View Slide

  22. ͞ΒͳΔཧ૝ͷϫʔΫϑϩʔ
    • ͢΂ͯͷॲཧ͕ίʔυͰهड़

    • ్தܦաͷอଘ

    • ૣࣦ͘ഊ͢Δ

    • ͍ͭͰ΋ϦτϥΠՄೳ

    • มߋཤྺͷ஝ੵ

    • ਓؒͷΞΫγϣϯ͚ͩͰͳ͘

    ͞·͟·ͳॲཧͱ࿈ܞ࣮ͯ͠ߦ

    • ୭Ͱ΋ɺ͍ͭͰ΋ɺ

    Ͳ͔͜ΒͰ΋࣮ߦͰ͖Δ

    View Slide

  23. ࣗಈԽͷ಺༰ͱٕज़తͳख๏

    View Slide

  24. Ϗϧυ࡞ۀ
    • ର৅ͷΞϓϦέʔγϣϯΛ֬ೝ͢Δ

    • ؅ཧը໘ʹొ࿥͞Εͨ৘ใΛ֬ೝ͢Δ

    ※࣮ࡍ͸͍͍ͪͪ֬ೝ͠ͳ͍͕ɺؒҧ͍ͬͯΔͱϏϧυ׬ྃޙɺΞοϓϩʔυͷࡍʹࣦഊ͢Δ

    • ؅ཧը໘Ͱର৅ͷΞϓϦέʔγϣϯΛࢦఆ͢Δ

    • ؅ཧը໘ͰόʔδϣϯͱϏϧυ൪߸Λೖྗ͢Δ

    • ؅ཧը໘ͰϏϧυର৅ͷλάʢϒϥϯνʣΛࢦఆ͢Δ

    • ؅ཧը໘͔ΒϏϧυΛ࣮ߦ͢Δ

    • ϓογϡ௨஌ͷূ໌ॻΛ࡞੒·ͨ͸ߋ৽͢Δ

    • ϦϦʔεϊʔτ΍εΫϦʔϯγϣοτͳͲਃ੥σʔλΛΞοϓϩʔυ͢Δ

    View Slide

  25. Prototyping

    View Slide

  26. 1st Prototype

    View Slide

  27. Slack Bolt
    • SlackΞϓϦΛ࡞੒͢Δ
    JavaScriptϑϨʔϜϫʔΫ

    • Block KitͰ࡞ͬͨJSONΛͦ
    ͷ··ը໘දࣔʹ࢖͑Δͷ
    ͰUI͕؆୯ʹ࡞ΕΔ

    • Slack Botͱͯ͠࡞͓ͬͯ͘
    ͱɺޙ͔ΒผͷϫʔΫϑ
    ϩʔͱ࿈ܞ͠΍͍͢

    View Slide

  28. Slack Bolt
    ϝϯγϣϯʹ൓Ԡͯ͠

    ೖྗϝχϡʔΛදࣔ͢Δྫ

    UI͸Block Kitʹ༻ҙ͞Ε͍ͯ
    Δ΋ͷΛ૊Έ߹ΘͤΔ͚ͩ

    Block Kit BuilderͰ؆୯ʹσβ
    ΠϯͰ͖Δ

    View Slide

  29. 2nd
    Prototype

    View Slide

  30. ԿΛ͍ͯ͠Δ͔
    1. SKUʢΞϓϦΛҰҙʹࣝผ͢ΔIDʣΛೖྗ

    2. Fastlane SpaceshipΛ࢖ͬͯόϯυϧID΍ձ໊ࣾͷਖ਼֬ͳ৘ใΛऔಘ

    3. GitHubϦϙδτϦ͔Β࠷৽ͷϦϦʔεͷλάΛऔಘ

    4. όʔδϣϯɺϏϧυ൪߸ɺϏϧυର৅ͷλάʢϒϥϯνʣͱͯ͠ઃఆ

    5. ؅ཧը໘ͷσʔλΛߋ৽

    6. ूΊͨ৘ใΛࢦఆͯ͠CIΛτϦΨʔ͢Δ

    View Slide

  31. Ϗϧυ࡞ۀ
    • ର৅ͷΞϓϦέʔγϣϯΛ֬ೝ͢Δ

    • ؅ཧը໘ʹొ࿥͞Εͨ৘ใΛ֬ೝ͢Δ

    ※࣮ࡍ͸͍͍ͪͪ֬ೝ͠ͳ͍͕ɺؒҧ͍ͬͯΔͱϏϧυ׬ྃޙɺΞοϓϩʔυͷࡍʹࣦഊ͢Δ

    • ؅ཧը໘Ͱର৅ͷΞϓϦέʔγϣϯΛࢦఆ͢Δ

    • ؅ཧը໘ͰόʔδϣϯͱϏϧυ൪߸Λೖྗ͢Δ

    • ؅ཧը໘ͰϏϧυର৅ͷλάʢϒϥϯνʣΛࢦఆ͢Δ

    • ؅ཧը໘͔ΒϏϧυΛ࣮ߦ͢Δ

    • ϓογϡ௨஌ͷূ໌ॻΛ࡞੒·ͨ͸ߋ৽͢Δ

    • ϦϦʔεϊʔτ΍εΫϦʔϯγϣοτͳͲਃ੥σʔλΛΞοϓϩʔυ͢Δ

    View Slide

  32. Ϗϧυ࡞ۀ
    • ର৅ͷΞϓϦέʔγϣϯΛ֬ೝ͢Δ

    • ؅ཧը໘ʹొ࿥͞Εͨ৘ใΛ֬ೝ͢Δ

    ※࣮ࡍ͸͍͍ͪͪ֬ೝ͠ͳ͍͕ɺؒҧ͍ͬͯΔͱϏϧυ׬ྃޙɺΞοϓϩʔυͷࡍʹࣦഊ͢Δ

    • ؅ཧը໘Ͱର৅ͷΞϓϦέʔγϣϯΛࢦఆ͢Δ ➡ Slack Botͷը໘Ͱࢦఆ

    • ؅ཧը໘ͰόʔδϣϯͱϏϧυ൪߸Λೖྗ͢Δ

    • ؅ཧը໘ͰϏϧυର৅ͷλάʢϒϥϯνʣΛࢦఆ͢Δ

    • ؅ཧը໘͔ΒϏϧυΛ࣮ߦ͢Δ ➡ Slack Botͷ֬ೝը໘ͷϘλϯΛԡ͢

    • ϓογϡ௨஌ͷূ໌ॻΛ࡞੒·ͨ͸ߋ৽͢Δ

    • ϦϦʔεϊʔτ΍εΫϦʔϯγϣοτͳͲਃ੥σʔλΛΞοϓϩʔυ͢Δ

    View Slide

  33. طଘͷϫʔΫϑϩʔʢʴखॱʣͱؔ܎ऀ
    CMS
    ؅ཧπʔϧ
    App Store Connect
    Circle CI
    JIRA
    Developer Portal
    ϏϧυϚγϯ
    Google Sheets
    AWS S3
    ͓٬͞· ୲౰ऀ
    ΤϯδχΞ

    View Slide

  34. طଘͷϫʔΫϑϩʔʢʴखॱʣͱؔ܎ऀ
    CMS
    ؅ཧπʔϧ
    App Store Connect
    Bitrise
    JIRA
    Developer Portal
    ϏϧυϚγϯ
    Google Sheets
    AWS S3
    ͓٬͞· ୲౰ऀ
    ΤϯδχΞ

    View Slide

  35. εϚʔτϑΥϯ͔Β࣮ߦͰ͖Δ
    • ͍ͭͰ΋ɺͲ͔͜ΒͰ΋؆୯ʹ

    • ࣦഊͯ͠΋ϦτϥΠ͢Δ͚ͩ

    View Slide

  36. Ϗϧυ࡞ۀ
    • ର৅ͷΞϓϦέʔγϣϯΛ֬ೝ͢Δ

    • ؅ཧը໘ʹొ࿥͞Εͨ৘ใΛ֬ೝ͢Δ

    ※࣮ࡍ͸͍͍ͪͪ֬ೝ͠ͳ͍͕ɺؒҧ͍ͬͯΔͱϏϧυ׬ྃޙɺΞοϓϩʔυͷࡍʹࣦഊ͢Δ

    • ؅ཧը໘Ͱର৅ͷΞϓϦέʔγϣϯΛࢦఆ͢Δ ➡ Slack Botͷը໘Ͱࢦఆ

    • ؅ཧը໘ͰόʔδϣϯͱϏϧυ൪߸Λೖྗ͢Δ

    • ؅ཧը໘ͰϏϧυର৅ͷλάʢϒϥϯνʣΛࢦఆ͢Δ

    • ؅ཧը໘͔ΒϏϧυΛ࣮ߦ͢Δ ➡ Slack Botͷ֬ೝը໘ͷϘλϯΛԡ͢

    • ϓογϡ௨஌ͷূ໌ॻΛ࡞੒·ͨ͸ߋ৽͢Δ

    • ϦϦʔεϊʔτ΍εΫϦʔϯγϣοτͳͲਃ੥σʔλΛΞοϓϩʔυ͢Δ

    View Slide

  37. ʢύοέʔδͷΞοϓϩʔυ͕੒ޭͨ͠Βʣ
    ϓογϡ௨஌ͷূ໌ॻΛ࡞੒·ͨ͸ߋ৽͢Δ

    View Slide

  38. ϓογϡ௨஌ͷূ໌ॻΛ࡞੒·ͨ͸ߋ৽͢Δखॱ
    • VPNʹ઀ଓ͢Δ

    • ϏϧυϚγϯʹϦϞʔτϩάΠϯ͢Δ

    • Push௨஌ͷূ໌ॻΛߋ৽͢ΔεΫϦϓτΛ࣮ߦ͢Δ

    $ sh pem.sh 26FF4BEC

    View Slide

  39. ূ໌ॻΛߋ৽͢ΔεΫϦϓτʢpem.shʣͷ಺༰
    • Ҿ਺ͷSKU͔ΒόϯυϧID΍Team IDΛऔಘ͢Δ

    ※ࢀরઌ͸ख࡞ۀͰϝϯςφϯε͞Ε͍ͯΔεϓϨουγʔτʢ͔ΒExport͞
    ΕͨϑΝΠϧʣ

    • fastlane pemΛ࣮ߦͯ͠ূ໌ॻΛ࡞੒·ͨ͸ߋ৽
    • ৽͍͠ূ໌ॻΛS3ʹΞοϓϩʔυ
    • ϏϧυϚγϯ͔ΒͷΈΞΫηεͰ͖Δαʔόʹূ໌ॻΛ഑ஔ

    View Slide

  40. • VPNʹ઀ଓ͢Δ

    • ϏϧυϚγϯʹϦϞʔτϩάΠϯ͢Δ

    • Push௨஌ͷূ໌ॻΛߋ৽͢ΔεΫϦϓτΛ࣮ߦ͢Δ

    sh pem.sh 26FF4BEC
    ख࡞ۀ
    ϓογϡ௨஌ͷূ໌ॻΛ࡞੒·ͨ͸ߋ৽͢Δखॱ
    ख࡞ۀ
    ·͕ͪ͑΍͍͢
    ख࡞ۀ

    View Slide

  41. ূ໌ॻΛߋ৽͢ΔεΫϦϓτͷ಺༰
    • Ҿ਺ͷSKU͔ΒόϯυϧID΍Team IDΛऔಘ͢Δ

    ※ࢀরઌ͸ख࡞ۀͰϝϯςφϯε͞Ε͍ͯΔεϓϨουγʔτʢ͔ΒExport͞
    ΕͨϑΝΠϧʣ

    • fastlane pemΛ࣮ߦͯ͠ূ໌ॻΛ࡞੒·ͨ͸ߋ৽
    • ৽͍͠ূ໌ॻΛS3ʹΞοϓϩʔυ
    • ϏϧυϚγϯ͔ΒͷΈΞΫηεͰ͖Δαʔόʹূ໌ॻΛ഑ஔ
    ͦͦ͜͜ͷස౓Ͱ·͕͍ͪͬͯΔ
    มߋཤྺ͕࢒Βͳ͍

    View Slide

  42. Ϗϧυ࣌ʹূ໌ॻΛߋ৽͢Δ

    View Slide

  43. Ϗϧυ࣌ʹূ໌ॻΛߋ৽͢Δ
    • ূ໌ॻͷ࡞੒ɾߋ৽ʹඞཁͳ৘ใʹύοέʔδͷΞοϓϩʔυʹඞཁͳ৘ใ

    ʢApple IDɺόϯυϧIDɺTeam IDɺetc.ʣ

    ͸Ϗϧυ࣌ʹ͢΂ͯἧ͍ͬͯΔ

    • ύοέʔδͷΞοϓϩʔυ͕੒ޭ͍ͯ͠Ε͹ͦͷΞϓϦͷূ໌ॻΛؒҧ͍ͳ͘
    ߋ৽Ͱ͖Δ

    View Slide

  44. ূ໌ॻΛߋ৽͢ΔखॱΛ

    ϏϧυεΫϦϓτʹ૊ΈࠐΉ

    View Slide

  45. • VPNʹ઀ଓ͢Δ

    • ϏϧυϚγϯʹϦϞʔτϩάΠϯ͢Δ

    • Push௨஌ͷূ໌ॻΛߋ৽͢ΔεΫϦϓτΛ࣮ߦ͢Δ

    sh pem.sh 26FF4BEC
    ϓογϡ௨஌ͷূ໌ॻΛ࡞੒·ͨ͸ߋ৽͢Δखॱ

    View Slide

  46. • Ҿ਺ͷSKU͔ΒόϯυϧID΍Team IDΛऔಘ͢Δ

    ※ࢀরઌ͸ख࡞ۀͰϝϯςφϯε͞Ε͍ͯΔεϓϨουγʔτʢ͔ΒExport͞
    ΕͨϑΝΠϧʣ

    • fastlane pemΛ࣮ߦͯ͠ূ໌ॻΛ࡞੒·ͨ͸ߋ৽

    • ৽͍͠ূ໌ॻΛS3ʹΞοϓϩʔυ

    • ϏϧυϚγϯ͔ΒͷΈΞΫηεͰ͖Δαʔόʹূ໌ॻΛ഑ஔ
    ϓογϡ௨஌ͷূ໌ॻΛ࡞੒·ͨ͸ߋ৽͢Δखॱ

    View Slide

  47. Tips
    S3΁ͷΞοϓϩʔυ͸كʹࣦഊ͢Δ

    ূ໌ॻͷߋ৽ʹ੒ޭ͢Δͱظݶ͕ۙͮ͘·Ͱߋ৽͞Εͳ͍

    ʢߋ৽͢Δʹ͸ڧ੍తʹ༗ޮͳূ໌ॻΛແޮԽ͢Δʣ

    ͭ·Γߋ৽ޙS3΁ͷΞοϓϩʔυʹࣦഊ͢Δͱূ໌ॻΛखʹೖΕΒΕ
    ͳ͍

    CIͷΞʔςΟϑΝΫτͱͯ͠࢒͓ͯ͘͠

    View Slide

  48. CIͷΞʔςΟϑΝΫτͱͯ͠੒Ռ෺Λ࢒͢

    View Slide

  49. ϏϧυϚγϯͷഇࢭ

    View Slide

  50. ϏϧυϚγϯͷഇࢭ
    ʹϑΝΠϧΛࣗಈతʹಉظ͢Δ

    View Slide

  51. ैདྷͷखॱ
    172.16.xxx.xxx
    1.ϏϧυϚγϯʹϩάΠϯ

    2.ূ໌ॻΛ࡞੒ɾߋ৽

    3.S3͓ΑͼαʔόʹΞοϓϩʔυ

    View Slide

  52. ৽͍͠खॱ
    172.16.xxx.xxx
    1.CIͰূ໌ॻΛ࡞੒ɾߋ৽

    2.CI͔ΒS3ʹΞοϓϩʔυ

    View Slide

  53. ϏϧυϚγϯʹϑΝΠϧΛࣗಈతʹಉظ͢Δ
    172.16.xxx.xxx

    View Slide

  54. ϏϧυϚγϯʹϑΝΠϧΛࣗಈతʹಉظ͢Δ

    View Slide

  55. ϏϧυϚγϯʹϑΝΠϧΛࣗಈతʹಉظ͢Δ

    View Slide

  56. ϏϧυϚγϯͷഇࢭ
    • σʔλͷࢀরݩΛਖ਼͘͢͠Δ

    S3ʢಈ͍͍ͯΔ؀ڥʹਖ਼͍͠؀ڥʣ͔ΒGitHubʹσʔλΛϛϥʔϦϯά

    • ϏϧυϚγϯͰఆظతʹGitϦϙδτϦΛߋ৽ʢPullͷΈʣ͠ɺ

    ࣾ಺αʔόʹϑΝΠϧΛ഑ஔ

    • ϏϧυϚγϯ͸෺ཧతʹ࢒͍ͬͯΔ͕ਓ͕ؒ઀ଓ͢Δ͜ͱ͸ͳ͍

    ≒ഇࢭ

    View Slide

  57. • ࠷ॳ͸ղܾࠔ೉ͩͬͨ͜ͱ΋ɺࣗಈԽͷൣғΛ૿΍͍ͯ͘͠͏ͪʹ

    ผͷղ๏͕ద༻Ͱ͖ͨΓ͢Δ

    • ࣗಈԽΛద༻͍ͯ͘͠ࡍʹ͸·ͣݱࡏͷঢ়ଶΛͳΜͰ΋Gitʹίϛοτ͓ͯ͠
    ͘ͱྑ͍ɻ

    มߋཤྺ͕௥͑Δ͜ͱͱGitHubͳΒCIͱͷ࿈ܞ͕΍Γ΍͍͢ɻ
    Tips

    View Slide

  58. Ϗϧυ࡞ۀ
    • ର৅ͷΞϓϦέʔγϣϯΛ֬ೝ͢Δ

    • ؅ཧը໘ʹొ࿥͞Εͨ৘ใΛ֬ೝ͢Δ

    ※࣮ࡍ͸͍͍ͪͪ֬ೝ͠ͳ͍͕ɺؒҧ͍ͬͯΔͱϏϧυ׬ྃޙɺΞοϓϩʔυͷࡍʹࣦഊ͢Δ

    • ؅ཧը໘Ͱର৅ͷΞϓϦέʔγϣϯΛࢦఆ͢Δ ➡ Slack Botͷը໘Ͱࢦఆ

    • ؅ཧը໘ͰόʔδϣϯͱϏϧυ൪߸Λೖྗ͢Δ

    • ؅ཧը໘ͰϏϧυର৅ͷλάʢϒϥϯνʣΛࢦఆ͢Δ

    • ؅ཧը໘͔ΒϏϧυΛ࣮ߦ͢Δ ➡ Slack Botͷ֬ೝը໘ͷϘλϯΛԡ͢

    • ϓογϡ௨஌ͷূ໌ॻΛ࡞੒·ͨ͸ߋ৽͢Δ ʴϏϧυϚγϯͷഇࢭ

    • ϦϦʔεϊʔτ΍εΫϦʔϯγϣοτͳͲਃ੥σʔλΛΞοϓϩʔυ͢Δ

    View Slide

  59. طଘͷϫʔΫϑϩʔʢʴखॱʣͱؔ܎ऀ
    CMS
    ؅ཧπʔϧ
    App Store Connect
    Bitrise
    JIRA
    Developer Portal
    ϏϧυϚγϯ
    AWS S3
    ͓٬͞· ୲౰ऀ
    ΤϯδχΞ

    View Slide

  60. ϦϦʔεϊʔτ΍εΫϦʔϯγϣοτ
    ͳͲਃ੥σʔλΛΞοϓϩʔυ͢Δ

    View Slide

  61. View Slide

  62. View Slide

  63. ϦϦʔεϊʔτ΍εΫϦʔϯγϣοτͳͲ
    ਃ੥σʔλΛΞοϓϩʔυ͢Δ

    View Slide

  64. ϦϦʔεϊʔτ΍εΫϦʔϯγϣοτͳͲ
    ਃ੥σʔλΛΞοϓϩʔυ͢Δ

    View Slide

  65. View Slide

  66. طଘͷϫʔΫϑϩʔʢʴखॱʣͱؔ܎ऀ
    CMS
    ؅ཧπʔϧ
    App Store Connect
    Bitrise
    JIRA
    Developer Portal
    ϏϧυϚγϯ
    AWS S3
    ͓٬͞· ୲౰ऀ
    ΤϯδχΞ

    View Slide

  67. ʴ̍

    View Slide

  68. ॲཧ͕׬ྃͨ͠ΒJIRAͷνέοτʹίϝϯτ͢Δ

    View Slide

  69. Ϗϧυ࡞ۀ
    • ର৅ͷΞϓϦέʔγϣϯΛ֬ೝ͢Δ

    • ؅ཧը໘ʹొ࿥͞Εͨ৘ใΛ֬ೝ͢Δ

    • ର৅ͷΞϓϦέʔγϣϯΛࢦఆ͢Δ

    • ؅ཧը໘ͰόʔδϣϯͱϏϧυ൪߸Λೖྗ͢Δ

    • ؅ཧը໘ͰϏϧυର৅ͷλάʢϒϥϯνʣΛࢦఆ͢Δ

    • ϏϧυΛ࣮ߦ͢Δ

    • ϓογϡ௨஌ͷূ໌ॻΛ࡞੒·ͨ͸ߋ৽͢Δ

    • ϦϦʔεϊʔτ΍εΫϦʔϯγϣοτͳͲਃ੥σʔλΛΞοϓϩʔυ͢Δ

    • ׬ྃͨ͠ΒJIRAͷνέοτʹίϝϯτ͢Δ

    View Slide

  70. ཧ૝ͷϫʔΫϑϩʔʹ޲͚ͯ

    View Slide

  71. ཧ૝ͷϫʔΫϑϩʔʹ޲͚ͯ
    • طଘͷPush௨஌ͷূ໌ॻΛCIͰຖ೔ࣗಈߋ৽

    ➡ ࣮ߦ݁Ռ͔Βσϕϩούʔن໿ʹະಉҙͷΞΧ΢ϯτΛݕग़Ͱ͖Δ

    • ผͷγεςϜʹΑΔূ໌ॻͷظݶ੾Ε௨஌ʹࣗಈͰཧ༝Λίϝϯτ͢Δ

    View Slide

  72. ཧ૝ͷϫʔΫϑϩʔʹ޲͚ͯ

    View Slide

  73. ཧ૝ͷϫʔΫϑϩʔʹ޲͚ͯ
    • ผͷγεςϜ͔Β௨஌͞ΕΔJIRAͷνέοτ͔Βਃ੥͕ඞཁͳΞϓϦΛ

    ࣗಈతʹݕग़

    • Bot͕Ϗϧυը໘ΛεϨουʹฦ৴͢ΔܗͰදࣔ

    View Slide

  74. ཧ૝ͷϫʔΫϑϩʔʹ޲͚ͯ

    View Slide

  75. ཧ૝ͷϫʔΫϑϩʔʹ޲͚ͯ
    • ผͷγεςϜ͔Β௨஌͞ΕΔJIRAͷνέοτ͔Βਃ੥͕ඞཁͳΞϓϦΛ

    ࣗಈతʹݕग़

    • Bot͕Ϗϧυը໘ΛεϨουʹฦ৴͢ΔܗͰදࣔ
    • ن໿ಉҙ౳͕ඞཁͳΞϓϦέʔγϣϯ͸Ϗϧυલʹ௨஌

    View Slide

  76. Ϗϧυ࡞ۀ
    • ର৅ͷΞϓϦέʔγϣϯΛ֬ೝ͢Δ

    • ؅ཧը໘ʹొ࿥͞Εͨ৘ใΛ֬ೝ͢Δ

    • ର৅ͷΞϓϦέʔγϣϯΛࢦఆ͢Δ

    • ؅ཧը໘ͰόʔδϣϯͱϏϧυ൪߸Λೖྗ͢Δ

    • ؅ཧը໘ͰϏϧυର৅ͷλάʢϒϥϯνʣΛࢦఆ͢Δ

    • ϏϧυΛ࣮ߦ͢Δ

    • ϓογϡ௨஌ͷূ໌ॻΛ࡞੒·ͨ͸ߋ৽͢Δ

    • ϦϦʔεϊʔτ΍εΫϦʔϯγϣοτͳͲਃ੥σʔλΛΞοϓϩʔυ͢Δ

    • ׬ྃͨ͠ΒJIRAͷνέοτʹίϝϯτ͢Δ

    View Slide

  77. ཧ૝ͷϫʔΫϑϩʔʹ޲͚ͯ
    • ผͷγεςϜ͔Β௨஌͞ΕΔJIRAͷνέοτ͔Βਃ੥͕ඞཁͳΞϓϦΛ

    ࣗಈతʹݕग़

    • Bot͕Ϗϧυը໘ΛεϨουʹฦ৴͢ΔܗͰදࣔ

    • ʢ༧ఆʣͦ΋ͦ΋ࣗಈͰϏϧυͯ͠͠·͓͏
    • ʢ༧ఆʣJIRAͷνέοτΛ࡞੒ͨ͠ΒϏϧυΛ։࢝ɺͱ͢Ε͹ΤϯδχΞ
    Ҏ֎ͷਓ͕࢖͍΍͍͢ͷͰ͸ʁ

    View Slide

  78. Ϗϧυ࡞ۀ
    • ର৅ͷΞϓϦέʔγϣϯΛ֬ೝ͢Δ

    • ؅ཧը໘ʹొ࿥͞Εͨ৘ใΛ֬ೝ͢Δ

    • ର৅ͷΞϓϦέʔγϣϯΛࢦఆ͢Δ

    • ؅ཧը໘ͰόʔδϣϯͱϏϧυ൪߸Λೖྗ͢Δ

    • ؅ཧը໘ͰϏϧυର৅ͷλάʢϒϥϯνʣΛࢦఆ͢Δ

    • ϏϧυΛ࣮ߦ͢Δ

    • ϓογϡ௨஌ͷূ໌ॻΛ࡞੒·ͨ͸ߋ৽͢Δ

    • ϦϦʔεϊʔτ΍εΫϦʔϯγϣοτͳͲਃ੥σʔλΛΞοϓϩʔυ͢Δ

    • ׬ྃͨ͠ΒJIRAͷνέοτʹίϝϯτ͢Δ

    View Slide

  79. طଘͷϫʔΫϑϩʔʢʴखॱʣͱؔ܎ऀ
    CMS
    ؅ཧπʔϧ
    App Store Connect
    Bitrise
    JIRA
    Developer Portal
    ϏϧυϚγϯ
    AWS S3
    ͓٬͞· ୲౰ऀ
    ΤϯδχΞ

    View Slide

  80. ʢิ଍ʣπʔϧͷΞοϓσʔτΛࣗಈԽ
    • DependabotͰNPMͱBundlerͷߋ৽ΛࣗಈతʹPR͢Δ

    docs.github.com/en/github/administering-a-repository/keeping-your-dependencies-updated-automatically

    • Dependabot Auto MergeͷGitHub ActionΛઃఆͯ͠PRΛࣗಈతʹϚʔδ͢Δ

    github.com/marketplace/actions/dependabot-auto-merge

    View Slide

  81. ʢิ଍ʣπʔϧͷΞοϓσʔτΛࣗಈԽ

    View Slide

  82. ʢิ଍ʣπʔϧͷΞοϓσʔτΛࣗಈԽ

    View Slide

  83. ʢิ଍ʣπʔϧͷΞοϓσʔτΛࣗಈԽ

    View Slide

  84. ࣮ݱͰ͖ͨ͜ͱɾ͜Ε͔Β
    • ͢΂ͯͷ࡞ۀΛίʔυԽ

    • ख࡞ۀΛʢ΄΅ʣͳͨ͘͠

    • ॲཧͷه࿥Λ࢒͢

    • มߋཤྺΛ஝ੵ͢Δ

    • ૣࣦ͘ഊ͢Δ

    • ϦτϥΠՄೳ

    • ਓؒͷΞΫγϣϯ͚ͩͰͳ͘͞·͟·ͳॲཧͱ࿈ܞ࣮ͯ͠ߦ

    • ͍ͭͰ΋ɺͲ͔͜ΒͰ΋࣮ߦͰ͖Δ

    View Slide

  85. ࣮ݱͰ͖ͨ͜ͱɾ͜Ε͔Β

    View Slide

  86. View Slide

  87. ͜Ε͔Β
    • ΑΓపఈతʹख࡞ۀΛͳ͘͢

    • ΋ͬͱଟ͘ͷγεςϜɺ௨஌ͱ࿈ܞ͢Δ

    • ͓٬͞·͕ࣗ෼ࣗ਎ͰϏϧυɾਃ੥Ͱ͖ΔΑ͏ʹ͢Δ

    View Slide

  88. ޮՌతʹࣗಈԽΛਐΊΔͨΊͷྑ͍ϓϥΫςΟε
    • ࣦഊ͠ͳ͍Α͏ʹ͢Δ

    • ϧʔϧΛ؆୯ʹ͢Δ

    • ػցͷ౎߹ʹ߹ΘͤΔ

    • ϦΧόϦʔॲཧΛࣗಈԽ͢Δ

    • ؒҧ͍͕ىͬͯ͜΋໭ͤΔΑ͏ʹ
    • ̍ͭͷ͜ͱ͚ͩΛ͏·͘΍Δ

    • ΤϥʔॲཧΛ͕Μ͹Βͳ͍

    - ૣΊʹࣦഊ͢Δ

    - ਖ਼ৗܥҎ֎ʹ͖ͨΒ୯७ʹऴྃ͢Δ

    - 80-90%͘Β͍ಈ͍͍ͯΕ͹Α͍

    ͦΕΛ95-100%ʹ͢Δʹ͸ലେͳίετ͕͔͔Δ

    View Slide

  89. ·ͱΊ
    • ख࡞ۀʹΑΔଛࣦ͸௚ײΑΓ΋͔ͳΓଟ͍

    • ࣗಈԽ͸ϨόϨοδ͕ޮ͖ɺ͔ͭෳརޮՌΛੜΉ

    • ࣗಈԽͨ͠γεςϜಉ࢜͸૬ޓ࿈ܞͰ͖Δ

    • ػցͰͰ͖Δ͜ͱΛػցʹ೚ͤΔ͜ͱͰɺΑΓߴҐͷ໰୊ղܾʹઐ೦Ͱ͖Δ

    View Slide