Slide 1

Slide 1 text

Mobility Technologies Co., Ltd. タクシーアプリ「GO」iOS アプリにおける Bitrise と GitHub Actions の使い分け Yosuke Imairi

Slide 2

Slide 2 text

Mobility Technologies Co., Ltd. 2 タクシーアプリ「GO」700万ダウンロード突破 🎉

Slide 3

Slide 3 text

Mobility Technologies Co., Ltd. 3 タクシーアプリ「GO」の iOS アプリで利⽤している CI サービス Bitrise と GitHub Actions をどう使い分けていくのがよいのか 🤔

Slide 4

Slide 4 text

Mobility Technologies Co., Ltd. ❏ Unit Test の実⾏ ❏ Pull Request 作成時 ❏ その後に push されたとき ❏ DeployGate への配信 ❏ 特定ブランチに push されたとき ❏ TestFlight への配信 ❏ タグが作成されたとき 4 Bitrise で⾏っていること ❏ dSym のアップロード ❏ 毎週⽔曜⽇(リリース⽇) ❏ 未使⽤の画像やリソースを削除 ❏ 毎週⽇曜⽇ ❏ ベースブランチとの差分を取り込む ❏ 必要に応じて定期実⾏ ❏ 依存関係の可視化( RIBs tree の更新 ) ❏ 毎週⽇曜⽇

Slide 5

Slide 5 text

Mobility Technologies Co., Ltd. ❏ Branch Protection rules の設定 ❏ 特定のブランチが作成されたとき ❏ RCブランチ作成 + バージョン更新 + Slack 通知 ❏ ⼿動実⾏ ❏ Danger による未使⽤プロパティ / メソッドの検知 ❏ Pull Request 作成時 ❏ TODO コメントの Issue 化 ❏ TODO コメントが残っている状態で特定ブランチにマージされたとき 5 GitHub Actions で⾏っていること ❏ コードの整形処理 ❏ 毎週⽇曜⽇

Slide 6

Slide 6 text

Mobility Technologies Co., Ltd. 6 Bitrise のほうが使いやすいと感じるところ

Slide 7

Slide 7 text

Mobility Technologies Co., Ltd. ❏ Bitrise だと⼀時的にスケジューリングしたいときに GUI で簡単に設定できる ❏ スケジューリングの追加、変更、削除が任意のタイミングですぐに反映できる ❏ GitHub Actions だと yml 管理が必須で、都度 yml の更新が必要になる ❏ yml 更新後、コードレビューしてマージするまで反映されない 7 ① スケジューリングの管理が⽐較的楽に⾏える

Slide 8

Slide 8 text

Mobility Technologies Co., Ltd. ❏ Bitrise には証明書を管理する仕組みが⽤意されている ❏ ⼿動で証明書の管理をしている場合は Bitrise のほうが圧倒的に楽だと思われる ❏ GitHub Actions で証明書を管理するには⼀⼯夫が必要 ❏ fastlane match を使っていれば GitHub Actions でも管理しやすくなる 8 ② 証明書の管理が分かりやすい

Slide 9

Slide 9 text

Mobility Technologies Co., Ltd. 9 GitHub Actions のほうが使いやすいと感じるところ

Slide 10

Slide 10 text

Mobility Technologies Co., Ltd. ❏ GitHub にアクセスするための Bot や Token を⽤意しなくてよい(こともある) ❏ Bitrise だと GitHub を操作するための Bot アカウントを⽤意してそれの PAT など を利⽤することになる ❏ これらの継続的な管理・運⽤が必要となる ❏ GitHub Actions では secrets.GITHUB_TOKEN でいくつかの API を利⽤可能 ❏ 利⽤できない API もあるので注意 10 ① GitHub の操作が簡単に⾏える

Slide 11

Slide 11 text

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 に関するトリガーがより詳細に設定できる

Slide 12

Slide 12 text

Mobility Technologies Co., Ltd. 12 ❏ 各 CI サービスの特徴を⽣かした使い⽅をする ❏ 他にも CI サービスはたくさんある ❏ Travis CI, CircleCI, Xcode Cloud, Codemagic etc… ❏ 開発しているプロジェクトに合ったサービスを利⽤していきたい ❏ どのように CI を活⽤していくか / 求める機能 ❏ ランニングコスト まとめ

Slide 13

Slide 13 text

文章·画像等の内容の無断転載及び複製等の行為はご遠慮ください。 Mobility Technologies Co., Ltd. 13