副業でiOS開発をしているが、CI環境が整備されていなかったため、ずっと使ってみたかったBitriseを使ってリリースビルドの自動化を試してみた。
Bitriseについてや、初回のワークフロー(Appの登録など)は、色んなブログで紹介されているので、割愛。
下記ステップで段階的に着手してみた。
ステップ
- Bitriseのwebサイトでリリースビルドを実行する
- 手元のmacで実行する
- リリースビルドが終わったらslackに通知する
- slackから実行できるようにする
1. Bitriseのwebサイトでリリースビルドを実行する
web上でWorkflowを作成して、ぽちぽちしてたら完成。簡単。。
2. 開発環境で実行する
curlのコマンドがworkflowごとに用意されている。
Start/Schedule a build
ボタンをタップして、 Advance
タブの最下部にcurlのコマンドがあるので、コピペしてよしなに使う
3. リリースビルドが終わったらslackに通知する
Slackへ通知は下記手順でOK
- Incoming WebhooksをSlackに追加
- Slackのstepを作成し、Incoming Webhooksの
Webhook URL
をセット
詳しくは公式ブログ参照:
https://blog.bitrise.io/slack-away

4. slackからBitriseのworkflowを実行する
BitriseにSlack用のIncoming Webhooksが用意されているので、そのwebhook URLをコピー
SlackのOutgoing Webhooksで、特定のメッセージに反応して先ほどコピーしたwebhookのURLを叩くようにすればOK。
[メッセージ] workflow:[workflow名]|branch:[branch名]
のフォーマットでつぶやくとBitriseのワークフローが走る。
フォーマットの詳しい説明は、下記を参照
https://devcenter.bitrise.io/webhooks/adding-a-slack-webhook/
完成
1行もコードを書かずにslackでリリースビルド実行 -> 結果をslack通知が実現できてびっくりした。
Bitrise便利。。
本業ではfastlaneとの連結を視野に入れていたけど、ワンチャンBitriseだけで済むかもしれない

詰まったこと
Code Signing Errorでコケる
Code Signing Error: No profiles for '{アプリ名}' were found: Xcode couldn't find any iOS App Development provisioning profiles matching '{アプリ名}'.
解決法
codesigndocというBitrise製のツールを使って実行。
すると面倒な証明書周りのアップロードタスクを対話形式でやってくれる