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.
    タクシーアプリ「GO」iOS アプリにおける
    Bitrise と GitHub Actions の使い分け
    Yosuke Imairi

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide