Upgrade to Pro — share decks privately, control downloads, hide ads and more …

タクシーアプリ「GO」iOS アプリにおける Bitrise と GitHub Actions の使い分け

タクシーアプリ「GO」iOS アプリにおける Bitrise と GitHub Actions の使い分け

Bitrise と GitHub Actions をどう使い分けて利用しているかを紹介しました。

『MoT x エウレカ 大規模アプリを支えるアプリ開発現場のリアル』
https://jtx.connpass.com/event/240758/

Yosuke Imairi

April 07, 2022
Tweet

More Decks by Yosuke Imairi

Other Decks in Technology

Transcript

  1. Mobility Technologies Co., Ltd. 3 タクシーアプリ「GO」の iOS アプリで利⽤している CI サービス

    Bitrise と GitHub Actions をどう使い分けていくのがよいのか 🤔
  2. Mobility Technologies Co., Ltd. ❏ Unit Test の実⾏ ❏ Pull

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

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

    スケジューリングの追加、変更、削除が任意のタイミングですぐに反映できる ❏ GitHub Actions だと yml 管理が必須で、都度 yml の更新が必要になる ❏ yml 更新後、コードレビューしてマージするまで反映されない 7 ① スケジューリングの管理が⽐較的楽に⾏える
  5. Mobility Technologies Co., Ltd. ❏ Bitrise には証明書を管理する仕組みが⽤意されている ❏ ⼿動で証明書の管理をしている場合は Bitrise

    のほうが圧倒的に楽だと思われる ❏ GitHub Actions で証明書を管理するには⼀⼯夫が必要 ❏ fastlane match を使っていれば GitHub Actions でも管理しやすくなる 8 ② 証明書の管理が分かりやすい
  6. Mobility Technologies Co., Ltd. ❏ GitHub にアクセスするための Bot や Token

    を⽤意しなくてよい(こともある) ❏ Bitrise だと GitHub を操作するための Bot アカウントを⽤意してそれの PAT など を利⽤することになる ❏ これらの継続的な管理・運⽤が必要となる ❏ GitHub Actions では secrets.GITHUB_TOKEN でいくつかの API を利⽤可能 ❏ 利⽤できない API もあるので注意 10 ① GitHub の操作が簡単に⾏える
  7. 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 に関するトリガーがより詳細に設定できる
  8. Mobility Technologies Co., Ltd. 12 ❏ 各 CI サービスの特徴を⽣かした使い⽅をする ❏

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