Slide 1

Slide 1 text

Share apk via Bitrise potatotips #54 @ eureka, Inc. AbemaTV, Inc. 前川 裕一 @kaelaela

Slide 2

Slide 2 text

もっと簡単に複数apkの配布がしたい メールアドレスもらうの大変 ... プランあげなきゃ...

Slide 3

Slide 3 text

すでに使ってる Bitrise + Slackでapkを配布しよう

Slide 4

Slide 4 text

このようにSlackに通知される

Slide 5

Slide 5 text

このようにSlackに通知される ビルドしたapkごとの配布ページリンク

Slide 6

Slide 6 text

配布ページ

Slide 7

Slide 7 text

配布(通知)までの流れ Pull request Start build Build & test Build apk Upload to Bitrise Send to Slack

Slide 8

Slide 8 text

必要なもの Bitrise start Build step: 並列してapkビルドするためのworkflowを追加する Deploy to Bitrise.io step: Bitrise上にapk配布ページを作成する Send a Slack Message step: Slackへ通知 そのほか 簡単なShell script

Slide 9

Slide 9 text

Bitrise workflowをカスタムする

Slide 10

Slide 10 text

Personal access tokensの発行 ● Bitrise Start Build stepで使う ● 名前は任意( 今回はBITRISE_AUTH_TOKENとします)

Slide 11

Slide 11 text

Personal access tokensの発行 Account settings

Slide 12

Slide 12 text

Personal access tokensの発行 Account settings > Security

Slide 13

Slide 13 text

Personal access tokensの発行 Account settings > Security > Generate New

Slide 14

Slide 14 text

対象Projectにtokenを追加 Workflow

Slide 15

Slide 15 text

対象Projectにtokenを追加 Workflow > secrets

Slide 16

Slide 16 text

対象Projectにtokenを追加 Workflow > secrets > Add new

Slide 17

Slide 17 text

Bitrise start Build stepの追加

Slide 18

Slide 18 text

Bitrise start Build stepの追加 Input variablesに先ほどのtokenを追加 $BITRISE_AUTH_TOKEN

Slide 19

Slide 19 text

Bitrise start Build stepの追加 Workflowsに並列ビルドするWorkflowの名前を設定 例) build_apk

Slide 20

Slide 20 text

Bitrise start Build stepの追加 WORKFLOW欄に追加される

Slide 21

Slide 21 text

Build_apk workflowの編集

Slide 22

Slide 22 text

Gradle Runner BUILD APK step 基本は普通にbuild デフォルトはassembleでfull build 吐き出したいapkに合わせて変更

Slide 23

Slide 23 text

配布ページの作成 Deploy to Bitrise.io step

Slide 24

Slide 24 text

Deploy to Bitrise.io step Enable public page for the App?をtrueに https://app.bitrise.io/artifact/~~ に公開ページとして作成される

Slide 25

Slide 25 text

Deploy to Bitrise.io step Format for the BITRISE_PUBLIC_INSTALL_PAGE_URL_MAP outputで 環境変数BITRISE_PUBLIC_INSTALL_PAGE_URL_MAPに入る値を決められる デフォルトは {apk名=>URL|apk名=>URL|...} のような文字列になる ※Go langのtext templateで記述されている 今回はscript処理しやすくするためにカンマ区切りにしました

Slide 26

Slide 26 text

Script step URLを環境変数にする

Slide 27

Slide 27 text

Shell script ● 先ほどのBITRISE_PUBLIC_INSTALL_PAGE_URL_MAP {app-develop-debug.apk,https://app.bitrise.io/artifact/~~,app-develop-release.apk...} ● apk名とurlを環境変数にしたい ● 例えば、今回はカンマ区切りなので のあとに $1 -> apk name $2 -> url みたいにすれば良さそう $ IFS=',' $ set -- ${BITRISE_PUBLIC_INSTALL_PAGE_URL_MAP}

Slide 28

Slide 28 text

これはだめ $ IFS=',' $ set -- ${BITRISE_PUBLIC_INSTALL_PAGE_URL_MAP} $ export APK_NAME=$1 $ ...

Slide 29

Slide 29 text

Expose an Environment Variable and use it another step $ envman add --key YOUR_KEY --value "value" https://devcenter.bitrise.io/tips-and-tricks/expose-environment-variable/

Slide 30

Slide 30 text

script sample #!/usr/bin/env bash # apk用URLを環境変数に追加 IFS=',' set -- ${BITRISE_PUBLIC_INSTALL_PAGE_URL_MAP} envman add --key APK_1_NAME --value $1 envman add --key APK_1_URL --value $2 envman add --key APK_2_NAME --value $3 envman add --key APK_2_URL --value $4 envman add --key APK_3_NAME --value $5 envman add --key APK_3_URL --value $6 ….

Slide 31

Slide 31 text

Send a Slack message step 環境変数にしたURLをボタンとして送信

Slide 32

Slide 32 text

Send a Slack message step リンクボタンを追加できる

Slide 33

Slide 33 text

DONE!

Slide 34

Slide 34 text

注意 ● 並列ビルドしないとビルド時間が増える ● 通知を工夫しないと雑多になる ● ビルドしたいapkが増えるほど通知は遅くなる ● apk以外のファイル(mapping.txtとか)は頑張らないと配布できない ● 公開ページなのでセキュアではない(気になるなら)

Slide 35

Slide 35 text

まとめ ● Bitrise start Build stepを追加 ● Upload to Bitrise stepをカスタマイズ ● Shell芸でなんとかする ● Bitriseの環境変数は ● Send to Slack stepで通知する $ envman add --key YOUR_KEY --value "value"

Slide 36

Slide 36 text

Thank you! (DX++)