🦁

Bitriseのアプリ配布でSlackに複数アプリのインストールボタンを出したい

2020/10/13に公開1

Bitrise初心者です。最近、Flutterでアプリを開発しています。Bitriseで配布した後に、Slack通知をした場合、デフォルトではiOSかAndroidどちらかのインストールボタンしかSlackに表示されません。

調べてみると、どうやら Deploy to Bitrise.io の時にできるBITRISE_PUBLIC_INSTALL_PAGE_URL_MAP という変数に複数のアプリのURLがあるらしいのですが、そのままSlackのメッセージに貼ってもうまくボタンが出ない。

これをできるようにしたので記録しておこうと思います。

Deploy to Bitrise.io

おおまかな流れ

完成形はとても簡単でした。

  1. Deploy to Bitrise.io の後に Script を追加する。
  2. Script でSlackボタンの変数を作成
  3. Send a Slack message で上記変数を読み込む。

これだけ。

Script

Script のタスクには下記のスクリプトを追加します。

LIST=(${BITRISE_PUBLIC_INSTALL_PAGE_URL_MAP//|/ })
INSTALL_PAGE_0=${LIST[0]//=>/|}
INSTALL_PAGE_1=${LIST[1]//=>/|}

envman add --key INSTALL_PAGE_BUTTON_0 --value "$INSTALL_PAGE_0"
envman add --key INSTALL_PAGE_BUTTON_1 --value "$INSTALL_PAGE_1"

ここにたどり着く前にこのIssuenの回答を参考に動かしたのですが、改行が反映されず、ちょっと下手ですが自分でシェルスクリプトを書きました。

Send a Slack message

Script で作った変数を読み込みます。

View App|${BITRISE_APP_URL}
View Build|${BITRISE_BUILD_URL}
${INSTALL_PAGE_BUTTON_0}
${INSTALL_PAGE_BUTTON_1}

ヴォワラ!これで複数ボタンが表示されます!

androidのapkの名前が変な気がしますが、そこまで慣れていないので><

後記

Zenn初めて投稿してみました。すごくスムーズに書ける!気持ちいい!編集中はロゴも表示されないなどの徹底。すごい!

Discussion

Kohei TabataKohei Tabata

シェルの変数展開について言及して、👇みたいにしても良いかもですね。
URLだけほしいケースもあるかと思うので。

INSTALL_PAGE_0=${LIST[0]//=>/|} // Staging.ipa|https://app.bitrise.io/artifact... の形になる
INSTALL_PAGE_1=${LIST[1]//=>/|} // app-staging-release.apk|https://app.bitrise.io/artifact... の形になる
INSTALL_LINK_0=${LIST[0]#*=>} // https://app.bitrise.io/artifact... の形になる
INSTALL_LINK_1=${LIST[1]#*=>} // https://app.bitrise.io/artifact... の形になる

envman add --key INSTALL_PAGE_BUTTON_0 --value "$INSTALL_PAGE_0"
envman add --key INSTALL_PAGE_BUTTON_1 --value "$INSTALL_PAGE_1"