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
GitHub Actionsを使用してGoogle Play Consoleに自動アップロード
Search
changfu
May 22, 2022
Technology
2.2k
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
修正PRを食べてレビュースキルが賢くなる:Claude Codeによる自己改善サイクル
yuyaumetsu
6
1.5k
Kiro Crew入門 - 常駐エージェントの仕組みと使いどころ / Intro to Kiro Crew
k_adachi_01
1
130
SmartHR Engineering Team Deck
smarthr
1
2.2k
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
140
SO-101×VLAによる3色キューブのピック&プレース
abeja
0
210
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
0
180
認知負荷をGemini で溶かす — GKE 基盤「Orbit」における AI エージェントの実践
sansantech
PRO
1
300
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
200
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.9k
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
侵入は突然に 〜 IoTマルウェアと悪用される家庭の機器 ~ / When Intrusion Strikes: IoT Malware and the Abuse of Home Devices
nttcom
0
5.8k
AIエージェントを前提としたプラットフォーム エンジニアリング:GKEで作るAgent-Ready Golden Path
legalontechnologies
PRO
2
240
Featured
See All Featured
Abbi's Birthday
coloredviolet
3
9.3k
Rails Girls Zürich Keynote
gr2m
96
14k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Automating Front-end Workflow
addyosmani
1369
210k
Mobile First: as difficult as doing things right
swwweet
225
10k
BBQ
matthewcrist
89
10k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
370
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.7k
Optimizing for Happiness
mojombo
378
71k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
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