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

CircleCIを利用したAndroid開発の効率化

 CircleCIを利用したAndroid開発の効率化

CircleCIを利用した自動ビルド・自動配布

Ryosuke Horie

February 28, 2015
Tweet

More Decks by Ryosuke Horie

Other Decks in Programming

Transcript

  1. CircleCIΛར༻ͨ͠
    Android։ൃͷޮ཰Խ
    VASILY,(Inc.(ງߐ
    2/28ʲiOS/Androidʳ࠷৽ࣄྫ͔ΒֶͿʂϞόΠϧ޲͚ςετख๏ษڧձ
    ©"VASILY,"Inc.,"2015 1

    View Slide

  2. ࣗݾ঺հ
    • ງߐ"྄հ"@Horie1024
    • ࡢ೥11݄͔ΒVASILYͰۈ຿
    • ओʹiQON"Android൛ͷ։ൃΛ୲౰
    ©"VASILY,"Inc.,"2015 2

    View Slide

  3. GooglePlayετΞ
    2014೥ϕετΞϓϦ
    ©"VASILY,"Inc.,"2015 3

    View Slide

  4. ൃද಺༰
    • ΞϓϦͷಈ࡞֬ೝΛޮ཰ྑ͘ߦ͍͍ͨ
    • ϦϦʔε࡞ۀΛͰ͖Δ͚ͩݮΒ͍ͨ͠
    • ࣗಈϏϧυ
    • APK഑෍ͷࣗಈԽ
    ©"VASILY,"Inc.,"2015 4

    View Slide

  5. iQONͷ։ൃϑϩʔ
    • PullRequestϕʔεͷ։ൃ
    • releaseϒϥϯνΛ࡞੒͠PullRequest
    • releaseϏϧυΛݕূ୺຤Ͱ֬ೝ
    • ϦϦʔεલʹmaster΁releaseΛϚʔδ
    ©"VASILY,"Inc.,"2015 5

    View Slide

  6. ϦϦʔε࡞ۀ
    1. masterϒϥϯν͔ΒAPKΛ࡞੒
    2. ϝʔϧͰAPKΛࣾ಺഑෍
    3. ࠷ऴ֬ೝ
    4. GooglePlayʹΞοϓϩʔυ
    5. ϦϦʔε׬ྃ
    ©"VASILY,"Inc.,"2015 6

    View Slide

  7. ϦϦʔε࡞ۀͷ໰୊఺
    • ࡞ۀखॱ͸؆୯͕ͩϦϦʔεͷ౓ʹ࡞ۀ͕ൃੜ͢ΔͷͰ໘౗
    • िʹ࠷௿1ճɺෳ਺ճߦ͏৔߹΋͋Δ
    • ۃྗ࡞ۀΛݮΒ͍ͨ͠
    ©"VASILY,"Inc.,"2015 7

    View Slide

  8. ࣮ݱͨ͜͠ͱ
    • APK࡞੒ͷࣗಈԽ
    • ࣾ಺഑෍ͷࣗಈԽ
    ©"VASILY,"Inc.,"2015 8

    View Slide

  9. ϦϦʔε࡞ۀͷ࡟ݮ(લ)
    1. masterϒϥϯν͔ΒAPKΛ࡞੒
    2. ϝʔϧͰAPKΛࣾ಺഑෍
    3. ࠷ऴ֬ೝ
    4. GooglePlayʹΞοϓϩʔυ
    5. ϦϦʔε׬ྃ
    ©"VASILY,"Inc.,"2015 9

    View Slide

  10. ϦϦʔε࡞ۀͷ࡟ݮ(ޙ)
    1. master΁ͷPullRequestͷϚʔδͰࣗಈ഑෍
    2. ࠷ऴ֬ೝ
    3. GooglePlayʹΞοϓϩʔυ
    4. ϦϦʔε׬ྃ
    ©"VASILY,"Inc.,"2015 10

    View Slide

  11. Ͳ͏࣮ݱ͔ͨ͠
    • CircleCIΛத৺ʹ࣮ݱ
    ©"VASILY,"Inc.,"2015 11

    View Slide

  12. Ͳ͏࣮ݱ͔ͨ͠
    • CircleCI)+)GitHub)+)DeployGate)+)Slack
    • GitHub΁ͷPushΛݕ஌͠ϏϧυΛ։࢝
    • CircleCIͰϏϧυɺDeployGateͰ഑෍
    • Ϗϧυ݁ՌͷSlack΁ͷ௨஌
    ©"VASILY,"Inc.,"2015 12

    View Slide

  13. ͳͥCircleCIʁ
    • iQONͷαʔόαΠυͰར༻࣮੷
    • Jenkinsͷ؅ཧʹख͕ճΒͳ͍
    • android/sdk͕VMʹඪ४Ͱ४උ
    ©"VASILY,"Inc.,"2015 13

    View Slide

  14. ࣮ݱͨ͠ϑϩʔ
    1. GitHubͰPullRequestΛϚʔδ
    ©"VASILY,"Inc.,"2015 14

    View Slide

  15. ࣮ݱͨ͠ϑϩʔ
    1. GitHubͰPullRequestΛϚʔδ
    2. CircleCI͕ϏϧυΛ։࢝
    ©"VASILY,"Inc.,"2015 15

    View Slide

  16. ࣮ݱͨ͠ϑϩʔ
    1. GitHubͰPullRequestΛϚʔδ
    2. CircleCI͕ϏϧυΛ։࢝
    3. Slack΁Ϗϧυͷ੒൱Λ௨஌
    ©"VASILY,"Inc.,"2015 16

    View Slide

  17. ࣮ݱͨ͠ϑϩʔ
    1. GitHubͰPullRequestΛϚʔδ
    2. CircleCI͕ϏϧυΛ։࢝
    3. Slack΁Ϗϧυͷ੒൱Λ௨஌
    4. DeployGate΁APKΛΞοϓϩʔυ
    ©"VASILY,"Inc.,"2015 17

    View Slide

  18. ࣮ݱͨ͠ϑϩʔ
    1. GitHubͰPullRequestΛϚʔδ
    2. CircleCI͕ϏϧυΛ։࢝
    3. Slack΁Ϗϧυͷ੒൱Λ௨஌
    4. DeployGate΁APKΛΞοϓϩʔυ
    5. ݕূ୺຤ʹAPKͷߋ৽Λ௨஌
    ©"VASILY,"Inc.,"2015 18

    View Slide

  19. ࣮ݱͨ͠ϑϩʔ
    1. GitHubͰPullRequestΛϚʔδ
    2. CircleCI͕ϏϧυΛ։࢝
    3. Slack΁Ϗϧυͷ੒൱Λ௨஌
    4. DeployGate΁APKΛΞοϓϩʔυ
    5. ݕূ୺຤ʹAPKͷߋ৽Λ௨஌
    6. APKΛΠϯετʔϧ
    ©"VASILY,"Inc.,"2015 19

    View Slide

  20. ݁Ռ
    • ͍ͭͰ΋࠷৽ϏϧυΛࢼ͢͜ͱ͕Մೳ
    • masterɾreleaseϒϥϯν΁ͷϚʔδ୯ҐͰݕূ୺຤ʹ഑৴
    • ϦϦʔεखॱͷ࡟ݮ
    • APKΛखಈͰ࡞Βͳͯ͘ྑ͍
    • ϝʔϧͰAPKΛ഑෍͢Δඞཁ͕ແ͍
    ©"VASILY,"Inc.,"2015 20

    View Slide

  21. CircleCIΛӡ༻ͯ͠ࠔͬͨ͜ͱ
    • Out%Of%Memory
    • VMͷϝϞϦ͕4G
    • build4toolsͷόʔδϣϯΛ21ʹ্͛ͨࡍසൃ
    • GradleΛ2ܥʹ্͛ͨͱ͜Ζऩ·Δ(كʹൃੜ)
    • CircleCI΁໰͍߹ΘͤͰ8Gʹ্͛ΒΕΔͷͰղܾ
    ©"VASILY,"Inc.,"2015 21

    View Slide

  22. ࣮ݱ͢ΔͨΊͷௐࠪ
    • CircleCIͷઃఆํ๏
    • CircleCIͰͷAndroidͷϏϧυ
    • DeployGateͱͷ࿈ܞ
    • Slackͱͷ࿈ܞ
    ©"VASILY,"Inc.,"2015 22

    View Slide

  23. ฐࣾϒϩάʹ·ͱΊ·ͨ͠ɻ
    h"p:/
    /tech.vasily.jp/circleci_deploygate_android_app_automa9on/
    ©"VASILY,"Inc.,"2015 23

    View Slide

  24. ࠓऔΓ૊ΜͰ͍Δ͜ͱ
    • GooglePlay΁ͷࣗಈΞοϓϩʔυ
    ©"VASILY,"Inc.,"2015 24

    View Slide

  25. GooglePlay΁ͷ
    ΞοϓϩʔυࣗಈԽ
    • PythonͰऔΓ߹͑ͣࢼͨ͠
    • CircleCIͱ࿈ܞͤ͞ςετத
    • 3݄લ൒ʹ͸࣮ݱ͍ͨ͠
    ©"VASILY,"Inc.,"2015 25

    View Slide

  26. 1. releaseϒϥϯν΁PullRequest
    2. ϚʔδͰࣗಈ഑෍ɺ࠷ऴ֬ೝ
    3. master΁PullRequest
    4. GooglePlayʹΞϧϑΝͰࣗಈΞοϓϩʔυ
    5. Developer9ConsoleͰΞϧϑΝΛ੡඼൛ʹมߋ
    6. ϦϦʔε׬ྃ
    ©"VASILY,"Inc.,"2015 26

    View Slide

  27. Hubotͷ׆༻
    • ։ൃޮ཰͕ྑ͘ͳΔ࢓૊ΈΛݕ౼
    ©"VASILY,"Inc.,"2015 27

    View Slide

  28. ͍ۙ͏ͪʹ΍Δ΂͖͜ͱ
    • Ϣχοτςετͷ֦ॆ
    • ςετ΁ͷཧղΛਂΊΔ
    • E2Eςετ
    • EspressoɺAppiumɺCalabash...
    ©"VASILY,"Inc.,"2015 28

    View Slide

  29. ͋Γ͕ͱ͏͍͟͝·ͨ͠
    ©"VASILY,"Inc.,"2015 29

    View Slide