Slide 1

Slide 1 text

GooglePlay΁ͷΞοϓϩʔυ ࣗಈԽΛࢼͯ͠Έͨ VASILY,(Inc.(ງߐ 3/12ʲୈ15ճʳpotato*ps(iOS/Android։ൃTipsڞ༗ձ) ©"VASILY,"Inc.,"2015 1

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

ϦϦʔε࡞ۀ 1. relase͔Βmaster΁PullRequest 2. CircleCIͰϏϧυ͠DeployGateͰ഑෍ 3. ࠷ऴ֬ೝ 4. CircleCI͔ΒAPKΛμ΢ϯϩʔυ͠GooglePlay΁Ξοϓϩʔυ 5. ϦϦʔε׬ྃ ©"VASILY,"Inc.,"2015 6

Slide 7

Slide 7 text

ϦϦʔε࡞ۀΛָʹ͍ͨ͠ • GooglePlay΁Ξοϓϩʔυ͢Δ࡞ۀΛࣗಈԽ͍ͨ͠ ©"VASILY,"Inc.,"2015 7

Slide 8

Slide 8 text

ࣗಈԽͷํ๏ • GooglePlayDeveloperAPIΛ࢖͏ • ݴޠผͰClientLibrary͕༻ҙ • h7ps:/ /developers.google.com/discovery/libraries ©"VASILY,"Inc.,"2015 8

Slide 9

Slide 9 text

औΓ׶͑ͣPythonͰࢼ͢ ©"VASILY,"Inc.,"2015 9

Slide 10

Slide 10 text

্ख͍ͬͨ͘ h"p:/ /qiita.com/Horie1024/items/ 0d3d50405f0b4bef1792 ©"VASILY,"Inc.,"2015 10

Slide 11

Slide 11 text

CircleCIͱ࿈ܞ͍ͤͨ͞ 1. master΁PullRequest 2. ϚʔδΛτϦΨʔʹalphaͰGooglePlay΁Ξοϓϩʔυ 3. alpha͔Βproduc8onʹϓϩϞʔτ͢Δ͜ͱͰϦϦʔε׬ྃ ©"VASILY,"Inc.,"2015 11

Slide 12

Slide 12 text

໰୊ • CircleCIͰ࣮ߦ͢Δͷ͕໘౗ • ֤छϥΠϒϥϦΠϯετʔϧɺґଘؔ܎ͷղܾ ©"VASILY,"Inc.,"2015 12

Slide 13

Slide 13 text

GradlePluginʹ͢Ε͹ྑ͍ʁ • JavaͷϥΠϒϥϦ͕༻ҙ͞ΕͯΔ • GradlePluginԽ͢Ε͹CircleCIͰͷ࣮ߦ΋؆୯ • ࡞ͬͯΈΑ͏ͱGradlePluginͷॻ͖ํΛௐ΂࢝ΊΔ • ॻ͚ͦ͏ʂ ©"VASILY,"Inc.,"2015 13

Slide 14

Slide 14 text

طʹ͋ͬͨ • gradle(play(publisher • APKΞοϓϩʔυ • Ϧιʔε؅ཧ(ΞϓϦઆ໌จ΍αϜωΠϧͷߋ৽) • alphaɺbetaɺproduc8onΛbuild.gradleͰࢦఆ ©"VASILY,"Inc.,"2015 14

Slide 15

Slide 15 text

gradle'play'publisherΛࢼ͢ • app/build.gradleʹ௥Ճ apply plugin: 'com.android.application' apply plugin: 'play' buildscript { repositories { mavenCentral() } dependencies { classpath ('com.github.triplet.gradle:play-publisher:1.0.2') { exclude group: 'com.google.guava' } } } android {ɾɾɾ} play { serviceAccountEmail = 'SERVICE_ACCOUNT_EMAIL' pk12File = file('KEY_PATH') track = 'alpha' } ©"VASILY,"Inc.,"2015 15

Slide 16

Slide 16 text

$"./gradlew"publishApkRelease ©"VASILY,"Inc.,"2015 16

Slide 17

Slide 17 text

CircleCI general: branches: only: - master machine: environment: ANDROID_HOME: /usr/local/android-sdk-linux dependencies: override: - echo y | android update sdk --no-ui --filter "android-22,build-tools-22" test: override: - echo "Nothing to do here" deployment: master: branch: master commands: - ./gradlew publishApkRelease ©"VASILY,"Inc.,"2015 17

Slide 18

Slide 18 text

·ͱΊ • gradle(play(publisher0+0CircleCI • ؆୯ʹGooglePlay΁ͷΞοϓϩʔυ͕ࣗಈԽͰ͖Δ ©"VASILY,"Inc.,"2015 18

Slide 19

Slide 19 text

VASILYͰ͸ΤϯδχΞΛืू͍ͯ͠·͢ʂ! ©"VASILY,"Inc.,"2015 19

Slide 20

Slide 20 text

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