Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GooglePlayへのアップロード自動化を試してみた
Search
Ryosuke Horie
March 12, 2015
Programming
6
8.4k
GooglePlayへのアップロード自動化を試してみた
GooglePlayへのアップロード自動化を試す
Ryosuke Horie
March 12, 2015
Tweet
Share
More Decks by Ryosuke Horie
See All by Ryosuke Horie
Androidifyから学ぶFirebase AI Logic SDKの使い方
horie1024
0
17
GitHub Copilot Use Cases at ZOZO
horie1024
1
2k
Miro × ZOZO ZOZOのMiro活用事例紹介
horie1024
0
2.5k
GitHub Copilotは開発者の生産性をどれだけ上げるのか?ZOZOでの全社導入とその効果 / How Much Does GitHub Copilot Improve Developer Productivity? The Company-wide Implementation and Its Effects at ZOZO
horie1024
36
27k
ZOZOTOWNにおける開発生産性向上に関する取り組み / Initiatives to Improve Development Productivity at ZOZOTOWN
horie1024
8
6.5k
How does the Relay connect Android app development and Design?
horie1024
2
2.1k
既存画面の Jetpack Composeでの書き換え: FAANSでの事例紹介 / Case study of rewriting existing screens with Jetpack Compose
horie1024
0
1.9k
スキルマップを作った話 / Create a skills map
horie1024
3
4.7k
Miroを使った開発効率向上のための取り組み / Using Miro Efforts to Improve Development Efficiency
horie1024
0
2.6k
Other Decks in Programming
See All in Programming
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
120
開発者への寄付をアプリ内課金として実装する時の気の使いどころ
ski
0
340
エンジニアとして高みを目指す、 利益を生み出す設計の考え方 / design-for-profit
minodriven
23
11k
気づいて!アプリからのSOS 〜App Store Connect APIで始めるパフォーマンス健康診断〜
waka12
0
260
ててべんす独演会〜Flowの全てを語ります〜
tbsten
1
220
10年もののAPIサーバーにおけるCI/CDの改善の奮闘
mbook
0
680
Current States of Java Web Frameworks at JCConf 2025
kishida
0
570
大規模アプリのDIフレームワーク刷新戦略 ~過去最大規模の並行開発を止めずにアプリ全体に導入するまで~
mot_techtalk
0
340
CSC509 Lecture 03
javiergs
PRO
0
320
ソフトウェア設計の実践的な考え方
masuda220
PRO
2
220
プログラミングどうやる? ~テスト駆動開発から学ぶ達人の型~
a_okui
0
190
議事録の要点整理を自動化! サーバレス Bot 構築術
penpeen
3
1.6k
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
840
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
32
2.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
A Tale of Four Properties
chriscoyier
160
23k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
We Have a Design System, Now What?
morganepeng
53
7.8k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
114
20k
Transcript
GooglePlayͷΞοϓϩʔυ ࣗಈԽΛࢼͯ͠Έͨ VASILY,(Inc.(ງߐ 3/12ʲୈ15ճʳpotato*ps(iOS/Android։ൃTipsڞ༗ձ) ©"VASILY,"Inc.,"2015 1
ࣗݾհ • ງߐ"྄հ"@Horie1024" • ࡢ11݄͔ΒVASILYͰۈ • iQONͷ։ൃΛ୲ ©"VASILY,"Inc.,"2015 2
GooglePlayετΞ 2014ϕετΞϓϦ ©"VASILY,"Inc.,"2015 3
iQONͷ։ൃϑϩʔ • PullRequestϕʔεͷ։ൃ • releaseϒϥϯνΛ࡞͠PullRequest • releaseϏϧυΛݕূͰ֬ೝ • ϦϦʔεલʹmasterreleaseΛϚʔδ ©"VASILY,"Inc.,"2015
4
ݕূͷࣗಈԽ 1. GitHubͰPullRequestΛϚʔδ 2. CircleCI͕ϏϧυΛ։࢝ 3. SlackϏϧυͷ൱Λ௨ 4. DeployGateAPKΛΞοϓϩʔυ 5.
ݕূʹAPKͷߋ৽Λ௨ 6. APKΛΠϯετʔϧ ©"VASILY,"Inc.,"2015 5
ϦϦʔε࡞ۀ 1. relase͔ΒmasterPullRequest 2. CircleCIͰϏϧυ͠DeployGateͰ 3. ࠷ऴ֬ೝ 4. CircleCI͔ΒAPKΛμϯϩʔυ͠GooglePlayΞοϓϩʔυ 5.
ϦϦʔεྃ ©"VASILY,"Inc.,"2015 6
ϦϦʔε࡞ۀΛָʹ͍ͨ͠ • GooglePlayΞοϓϩʔυ͢Δ࡞ۀΛࣗಈԽ͍ͨ͠ ©"VASILY,"Inc.,"2015 7
ࣗಈԽͷํ๏ • GooglePlayDeveloperAPIΛ͏ • ݴޠผͰClientLibrary͕༻ҙ • h7ps:/ /developers.google.com/discovery/libraries ©"VASILY,"Inc.,"2015 8
औΓ͑ͣPythonͰࢼ͢ ©"VASILY,"Inc.,"2015 9
্ख͍ͬͨ͘ h"p:/ /qiita.com/Horie1024/items/ 0d3d50405f0b4bef1792 ©"VASILY,"Inc.,"2015 10
CircleCIͱ࿈ܞ͍ͤͨ͞ 1. masterPullRequest 2. ϚʔδΛτϦΨʔʹalphaͰGooglePlayΞοϓϩʔυ 3. alpha͔Βproduc8onʹϓϩϞʔτ͢Δ͜ͱͰϦϦʔεྃ ©"VASILY,"Inc.,"2015 11
• CircleCIͰ࣮ߦ͢Δͷ͕໘ • ֤छϥΠϒϥϦΠϯετʔϧɺґଘؔͷղܾ ©"VASILY,"Inc.,"2015 12
GradlePluginʹ͢Εྑ͍ʁ • JavaͷϥΠϒϥϦ͕༻ҙ͞ΕͯΔ • GradlePluginԽ͢ΕCircleCIͰͷ࣮ߦ؆୯ • ࡞ͬͯΈΑ͏ͱGradlePluginͷॻ͖ํΛௐ࢝ΊΔ • ॻ͚ͦ͏ʂ ©"VASILY,"Inc.,"2015
13
طʹ͋ͬͨ • gradle(play(publisher • APKΞοϓϩʔυ • Ϧιʔεཧ(ΞϓϦઆ໌จαϜωΠϧͷߋ৽) • alphaɺbetaɺproduc8onΛbuild.gradleͰࢦఆ ©"VASILY,"Inc.,"2015
14
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
$"./gradlew"publishApkRelease ©"VASILY,"Inc.,"2015 16
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
·ͱΊ • gradle(play(publisher0+0CircleCI • ؆୯ʹGooglePlayͷΞοϓϩʔυ͕ࣗಈԽͰ͖Δ ©"VASILY,"Inc.,"2015 18
VASILYͰΤϯδχΞΛืू͍ͯ͠·͢ʂ! ©"VASILY,"Inc.,"2015 19
͋Γ͕ͱ͏͍͟͝·ͨ͠ ©"VASILY,"Inc.,"2015 20