Bitrise と GitHub Actions をどう使い分けて利用しているかを紹介しました。
『MoT x エウレカ 大規模アプリを支えるアプリ開発現場のリアル』 https://jtx.connpass.com/event/240758/
Mobility Technologies Co., Ltd.タクシーアプリ「GO」iOS アプリにおけるBitrise と GitHub Actions の使い分けYosuke Imairi
View Slide
Mobility Technologies Co., Ltd.2タクシーアプリ「GO」700万ダウンロード突破 🎉
Mobility Technologies Co., Ltd.3タクシーアプリ「GO」の iOS アプリで利⽤している CI サービスBitrise と GitHub Actions をどう使い分けていくのがよいのか 🤔
Mobility Technologies Co., Ltd.❏ Unit Test の実⾏❏ Pull Request 作成時❏ その後に push されたとき❏ DeployGate への配信❏ 特定ブランチに push されたとき❏ TestFlight への配信❏ タグが作成されたとき4Bitrise で⾏っていること❏ dSym のアップロード❏ 毎週⽔曜⽇(リリース⽇)❏ 未使⽤の画像やリソースを削除❏ 毎週⽇曜⽇❏ ベースブランチとの差分を取り込む❏ 必要に応じて定期実⾏❏ 依存関係の可視化( RIBs tree の更新 )❏ 毎週⽇曜⽇
Mobility Technologies Co., Ltd.❏ Branch Protection rules の設定❏ 特定のブランチが作成されたとき❏ RCブランチ作成 + バージョン更新 + Slack 通知❏ ⼿動実⾏❏ Danger による未使⽤プロパティ / メソッドの検知❏ Pull Request 作成時❏ TODO コメントの Issue 化❏ TODO コメントが残っている状態で特定ブランチにマージされたとき5GitHub Actions で⾏っていること❏ コードの整形処理❏ 毎週⽇曜⽇
Mobility Technologies Co., Ltd.6Bitrise のほうが使いやすいと感じるところ
Mobility Technologies Co., Ltd.❏ Bitrise だと⼀時的にスケジューリングしたいときに GUI で簡単に設定できる❏ スケジューリングの追加、変更、削除が任意のタイミングですぐに反映できる❏ GitHub Actions だと yml 管理が必須で、都度 yml の更新が必要になる❏ yml 更新後、コードレビューしてマージするまで反映されない7① スケジューリングの管理が⽐較的楽に⾏える
Mobility Technologies Co., Ltd.❏ Bitrise には証明書を管理する仕組みが⽤意されている❏ ⼿動で証明書の管理をしている場合は Bitrise のほうが圧倒的に楽だと思われる❏ GitHub Actions で証明書を管理するには⼀⼯夫が必要❏ fastlane match を使っていれば GitHub Actions でも管理しやすくなる8② 証明書の管理が分かりやすい
Mobility Technologies Co., Ltd.9GitHub Actions のほうが使いやすいと感じるところ
Mobility Technologies Co., Ltd.❏ GitHub にアクセスするための Bot や Token を⽤意しなくてよい(こともある)❏ Bitrise だと GitHub を操作するための Bot アカウントを⽤意してそれの PAT などを利⽤することになる❏ これらの継続的な管理・運⽤が必要となる❏ GitHub Actions では secrets.GITHUB_TOKEN でいくつかの API を利⽤可能❏ 利⽤できない API もあるので注意10① GitHub の操作が簡単に⾏える
Mobility Technologies Co., Ltd.❏ Bitrise には⼤きく分けて 3 つのトリガーが⽤意されている❏ PUSH / PULL REQUEST / TAG❏ GitHub Actions ではより詳細な条件が指定できる❏ 特定のチームが Pull Request の Assignee に設定されたとき❏ Pull Request が Approved / マージされたとき❏ Pull Request にコメントがされたとき etc…❏ トリガーだけ GitHub Actions を利⽤して Bitrise の Workflow を実⾏するのも⼀つの⼿11② GitHub に関するトリガーがより詳細に設定できる
Mobility Technologies Co., Ltd.12❏ 各 CI サービスの特徴を⽣かした使い⽅をする❏ 他にも CI サービスはたくさんある❏ Travis CI, CircleCI, Xcode Cloud, Codemagic etc…❏ 開発しているプロジェクトに合ったサービスを利⽤していきたい❏ どのように CI を活⽤していくか / 求める機能❏ ランニングコストまとめ
文章·画像等の内容の無断転載及び複製等の行為はご遠慮ください。Mobility Technologies Co., Ltd.13