Share apk via Bitrise

Share apk via Bitrise

A967476c5855d593710a9a580f6b2aed?s=128

Yuichi Maekawa

August 23, 2018
Tweet

Transcript

  1. Share apk via Bitrise potatotips #54 @ eureka, Inc. AbemaTV,

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

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

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

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

  6. 配布ページ

  7. 配布(通知)までの流れ Pull request Start build Build & test Build apk

    Upload to Bitrise Send to Slack
  8. 必要なもの Bitrise start Build step: 並列してapkビルドするためのworkflowを追加する Deploy to Bitrise.io step:

    Bitrise上にapk配布ページを作成する Send a Slack Message step: Slackへ通知 そのほか 簡単なShell script
  9. Bitrise workflowをカスタムする

  10. Personal access tokensの発行 • Bitrise Start Build stepで使う • 名前は任意(

    今回はBITRISE_AUTH_TOKENとします)
  11. Personal access tokensの発行 Account settings

  12. Personal access tokensの発行 Account settings > Security

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

  14. 対象Projectにtokenを追加 Workflow

  15. 対象Projectにtokenを追加 Workflow > secrets

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

  17. Bitrise start Build stepの追加

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

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

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

  21. Build_apk workflowの編集

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

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

  24. Deploy to Bitrise.io step Enable public page for the App?をtrueに

    https://app.bitrise.io/artifact/~~ に公開ページとして作成される
  25. 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処理しやすくするためにカンマ区切りにしました
  26. Script step URLを環境変数にする

  27. 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}
  28. これはだめ $ IFS=',' $ set -- ${BITRISE_PUBLIC_INSTALL_PAGE_URL_MAP} $ export APK_NAME=$1

    $ ...
  29. 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/
  30. 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 ….
  31. Send a Slack message step 環境変数にしたURLをボタンとして送信

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

  33. DONE!

  34. 注意 • 並列ビルドしないとビルド時間が増える • 通知を工夫しないと雑多になる • ビルドしたいapkが増えるほど通知は遅くなる • apk以外のファイル(mapping.txtとか)は頑張らないと配布できない •

    公開ページなのでセキュアではない(気になるなら)
  35. まとめ • Bitrise start Build stepを追加 • Upload to Bitrise

    stepをカスタマイズ • Shell芸でなんとかする • Bitriseの環境変数は • Send to Slack stepで通知する $ envman add --key YOUR_KEY --value "value"
  36. Thank you! (DX++)