Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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