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

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

Dbab5e5a1fd54531e1119ede6b3b9e65?s=47 Ryosuke Horie
February 28, 2015

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

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

Dbab5e5a1fd54531e1119ede6b3b9e65?s=128

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    ϝʔϧͰAPKΛ഑෍͢Δඞཁ͕ແ͍ ©"VASILY,"Inc.,"2015 20
  21. CircleCIΛӡ༻ͯ͠ࠔͬͨ͜ͱ • Out%Of%Memory • VMͷϝϞϦ͕4G • build4toolsͷόʔδϣϯΛ21ʹ্͛ͨࡍසൃ • GradleΛ2ܥʹ্͛ͨͱ͜Ζऩ·Δ(كʹൃੜ) •

    CircleCI΁໰͍߹ΘͤͰ8Gʹ্͛ΒΕΔͷͰղܾ ©"VASILY,"Inc.,"2015 21
  22. ࣮ݱ͢ΔͨΊͷௐࠪ • CircleCIͷઃఆํ๏ • CircleCIͰͷAndroidͷϏϧυ • DeployGateͱͷ࿈ܞ • Slackͱͷ࿈ܞ ©"VASILY,"Inc.,"2015

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

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

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

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

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

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

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