Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
GitHub Actionsを使用してGoogle Play Consoleに自動アップロード
Search
changfu
May 22, 2022
Technology
2.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GitHub Actionsを使用してGoogle Play Consoleに自動アップロード
changfu
May 22, 2022
Other Decks in Technology
See All in Technology
AIに攻撃される前に、AIに攻撃させる
tsuchikazu
0
170
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.8k
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
880
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
560
生成AIと進める探索的データ分析(2026.10.03 第122回Tokyo.R勉強会)
tatamiya
2
1.5k
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
140
Kiro Crewをはじめよう
kizawa2020
1
150
夫婦で子育てするための育児標準化
codmoninc
PRO
0
200
ゲームのリアルタイム通信から見た QUIC と MoQ
segadevtech
0
110
その Valkey 使いこなしていますか?
onk
PRO
1
150
分析AIエージェントを育てる、動く環境を育てる
codatum
1
1k
初対面のメンバーがチームを組み、Claude Codeでゼロからサービスをリリース
mkdev10
1
120
Featured
See All Featured
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
930
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
270
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
460
For a Future-Friendly Web
brad_frost
184
10k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Amusing Abliteration
ianozsvald
1
340
Abbi's Birthday
coloredviolet
4
10k
Transcript
GitHub Actionsを使用して Google Play Consoleに自動アップロード 株式会社ZOZO ブランドソリューション開発本部 WEAR部 Androidブロック 武永 芙侑香
Copyright © ZOZO, Inc.
© ZOZO, Inc. 株式会社ZOZO ブランドソリューション開発本部 WEAR部 Androidブロック 武永 芙侑香 2021年8月入社 福井でエンジニアをしていましたが東京に憧れて上京。ベン
チャー企業でライブコマースアプリを開発後、ZOZOに入社 しました。 Androidアプリ開発経験が長いです。 2
© ZOZO, Inc. https://wear.jp/ 3 • ファッションコーディネートアプリ • 1,600万ダウンロード突破、コーディネート投稿総数は1,100万件以上 (2022年4月末時点)
• ピックアップタグから最新のトレンドをチェック • コーディネート着用アイテムを公式サイトで購入可能 • WEAR公認の人気ユーザーをWEARISTAと認定。モデル・タレント・デ ザイナー・インフルエンサーといった各界著名人も参加
© ZOZO, Inc. アジェンダ 4 はじめに 導入方法 実際のコード アップロード後の運用 今後の課題
© ZOZO, Inc. はじめに 5
© ZOZO, Inc. GitHub Actionsでの 自動化進めてますか? 6
© ZOZO, Inc. GitHub Actionsを用いて行う自動化のメリット • 人為的ミスの回避 / 手動で作業を行う必要がない •
作業の効率化 / ストアアップロードに使っていた作業時間を他の作業にあてることができる • ブランチ運用にも対応 / トリガーブランチの設定を豊富に行える 7
© ZOZO, Inc. 導入方法 8
© ZOZO, Inc. 9 r0adkll/upload-google-play • GitHub Actionsで利用できるライブラリで導入しやすい • 段階的公開や、クローズドテストにも対応している
使用するライブラリ
© ZOZO, Inc. .github/workflows直下ファイルに追加 10
© ZOZO, Inc. リポジトリから参照するsecretの追加 1. GITHUB_TOKEN* 2. ENCODED_RELEASE_KEYSTORE* 3. KEYSTORE_PASSWORD*
4. KEY_PASSWORD* 5. SERVICE_ACCOUNT_JSON* ※上記は必須 11
© ZOZO, Inc. Google Cloud Platformでサービスアカウントを作成する 12 ※以降Google Cloud PlatformのことはGCPと省略します
ロールは『参照者』以上に設定 作成したサービスアカウントを入力
© ZOZO, Inc. サービスアカウントの秘密鍵を作成する 13 作成が完了したら jsonファイルがダウンロードされるので そのjsonをシークレットに追加する ぜん 秘密鍵は再度ダウンロードできないので注意!
© ZOZO, Inc. 作成したユーザーを招待する 14 GooglePlayConsoleのAPIアクセスから 連携できるアカウントが表示されるので そこから権限を付与
© ZOZO, Inc. Google Play Console上で権限を付与する 15 ユーザーの権限付与後に アプリの権限も付与することができる
© ZOZO, Inc. 実際のコード 16
© ZOZO, Inc. 17 実際のコード トリガー設定 ビルド Keystoreをデコード App Bundle作成
全体フロー サービスアカウント作成 Slack通知設定 デプロイ
© ZOZO, Inc. name: Deploy Google Play Console on: pull_request:
branches: - main types: [closed] 18 トリガー設定 ビルド Keystoreをデコード App Bundle作成 サービスアカウント作成 Slack通知設定 デプロイ
© ZOZO, Inc. jobs: build: runs-on: ubuntu-latest steps: - name:
Checkout uses: actions/checkout@v2 - name: set up JDK 11 uses: actions/setup-java@v1 with: java-version: 11 - name: Create Empty local.properties for ci run: echo > local.properties - name: Displays the Android dependencies of the project run: ./gradlew androidDependencies 19 トリガー設定 ビルド Keystoreをデコード App Bundle作成 サービスアカウント作成 Slack通知設定 デプロイ
© ZOZO, Inc. - name: Decode Keystore run: echo ${{
secrets.ENCODED_RELEASE_KEYSTORE }} | base64 --decode > ${{ test.keystore }} 20 トリガー設定 ビルド Keystoreをデコード App Bundle作成 サービスアカウント作成 Slack通知設定 デプロイ
© ZOZO, Inc. - name: Generate AAB run: ./gradlew :app:bundleRelease
env: RELEASE_KEYSTORE_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }} RELEASE_KEYSTORE_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} 21 トリガー設定 ビルド Keystoreをデコード App Bundle作成 サービスアカウント作成 Slack通知設定 デプロイ
© ZOZO, Inc. - name: Create service_account.json id: createServiceAccount run:
echo '${{ secrets.SERVICE_ACCOUNT_JSON }}' > service_account.json 22 トリガー設定 ビルド Keystoreをデコード App Bundle作成 サービスアカウント作成 Slack通知設定 デプロイ
© ZOZO, Inc. - name: Deploy to Play Store id:
deploy uses: r0adkll/
[email protected]
with: serviceAccountJson: service_account.json packageName: com.test.deplaoy.app releaseFile: app/build/outputs/bundle/googlePlayRelease/app-googlePlay-release.aab track: beta whatsNewDirectory: whatsnew/ 23 トリガー設定 ビルド Keystoreをデコード App Bundle作成 サービスアカウント作成 Slack通知設定 デプロイ
© ZOZO, Inc. - uses: 8398a7/
[email protected]
if: failure() with: status:
${{ job.status }} text: リリースビルドが失敗しました。確認をお願いします。 mention: 'here' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} - uses: 8398a7/
[email protected]
if: success() with: status: ${{ job.status }} text: リリースビルドが完了しました! env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} 24 トリガー設定 ビルド Keystoreをデコード App Bundle作成 サービスアカウント作成 Slack通知設定 デプロイ
© ZOZO, Inc. アップロード後の運用 25
© ZOZO, Inc. クローズドテストが優秀! 26 QA クローズドテスト (beta) 本番リリース クローズドテストを招待したユーザーで確認可能!
© ZOZO, Inc. リリース前レポートで事前にエラーを発見できる 27 リリース前に致命的なバグを 発見することができる!
© ZOZO, Inc. 今後の課題 28
© ZOZO, Inc. 今後の課題 ✔ 自動化のツールは豊富にあるので環境や目的に合わせて使い分けることが必要 ✔ リリースノートをGoogle スプレッドシートから取得して自動化したい ✔
Gradleの理解があるのであればGradle Play Publisherがメジャーなのでベター 29
None