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

Bitrise Pipelines に移行して、クレジットを節約しながら並列でビルド・テストを回す / Migrate to Bitrise Pipelines and save credits while run builds and tests in parallel

Bitrise Pipelines に移行して、クレジットを節約しながら並列でビルド・テストを回す / Migrate to Bitrise Pipelines and save credits while run builds and tests in parallel

Bitrise Pipelines に移行して、クレジットを節約しながら並列でビルド・テストを回す / Migrate to Bitrise Pipelines and save credits while run builds and tests in parallel

iOS Test Online
2022/10/28 19:00〜 10分枠1
https://testonline.connpass.com/event/261910/

登壇ノートはこちら: https://zenn.dev/dena/articles/376a722a08394e

treastrain / Tanaka Ryoga

October 28, 2022
Tweet

More Decks by treastrain / Tanaka Ryoga

Other Decks in Technology

Transcript

  1. 2 自己紹介 treastrain / Tanaka Ryoga 2021年4月 新卒入社 iOS App 開発をメインに取り組み

    Bitrise は入社後(配属後)に初めて触った Zenn Publication はじまりました! 👉 https://zenn.dev/p/dena DeNA Co., Ltd. iOS App Developer @treastrain #ios_test_online
  2. 6 Bitrise Pipelines とは 1 ステップ #ios_test_online • git clone

    する • pod install する • xcodebuild する • …etc.
  3. クレジット消費 8 Bitrise Pipelines とは 1 ワークフロー ステップ1 ステップ2 ステップ3

    …続く トリガー (git push・プルリクエスト) #ios_test_online
  4. 9 Build Pipelines: efficient CI/CD workflows with parallelization | Bitrise

    https://blog.bitrise.io/post/build-pipelines-efficient-ci-cd-workflows-with-parallelization
  5. クレジット消費 クレジット消費 13 Bitrise Pipelines とは 1 …続く #ios_test_online トリガー

    (git push・プルリクエスト) パイプライン ワークフロー1 ステップ1 …続く ワークフロー2 …続く
  6. 25 Build Pipelines: efficient CI/CD workflows with parallelization | Bitrise

    https://blog.bitrise.io/post/build-pipelines-efficient-ci-cd-workflows-with-parallelization
  7. • 同じステージの他のワークフローの完了を待っている間のクレジット消費無し ◦ 従来の方法ではクレジットを消費していた ▪ ワークフロー分割時に考慮する必要がある 定期的にメンテナンスが必要 27 Bitrise Pipelines を活用するために

    iOS App プロジェクトでできること 4 #ios_test_online 他のワークフローを開始 テスト① 他のワークフロー完了を待機 結果のマージなど テスト② テスト③ 待機時間も クレジットを消費
  8. • 同じステージの他のワークフローの完了を待っている間のクレジット消費無し ◦ 待機時間が長くなっても、それによるクレジット消費量は増加しない 28 Bitrise Pipelines を活用するために iOS App

    プロジェクトでできること 4 #ios_test_online パイプライン テスト② テスト① テスト③ ステージ1 ステージ2 結果のマージなど (テスト②・③が終わるまでの) 待機時間の クレジット消費なし
  9. 29 Bitrise Pipelines を活用するために iOS App プロジェクトでできること • パイプラインの一部のワークフローが失敗しても、全てを再実行する必要なし 4

    #ios_test_online 治安維持のためにCI/CDサービスを活用しておこなったこと - Speaker Deck https://speakerdeck.com/tarappo/cdsahisuwohuo-yong-siteokonatutakoto
  10. 30 Bitrise Pipelines を活用するために iOS App プロジェクトでできること • パイプラインの一部のワークフローが失敗しても、全てを再実行する必要なし 4

    #ios_test_online 治安維持のためにCI/CDサービスを活用しておこなったこと - Speaker Deck https://speakerdeck.com/tarappo/cdsahisuwohuo-yong-siteokonatutakoto テスト前に失敗した 「成果物」が無い 後続に影響? ここから全てやり直す…?
  11. 31 Bitrise Pipelines を活用するために iOS App プロジェクトでできること • パイプラインの一部のワークフローが失敗しても、全てを再実行する必要なし 4

    #ios_test_online パイプライン テスト② テスト① テスト③ ステージ1 ステージ2 パイプライン テスト② テスト① テスト③ ステージ1 ステージ2 再実行 ステージ1テスト②で止まると ステージ2は実行しない ステージ1テスト①③は実行せず、 アーティファクトも再実行前のものを使用
  12. 32 Bitrise Pipelines を活用するために iOS App プロジェクトでできること • 最も効率のよいパイプライン・ワークフロー構成を考える ◦

    時間面・消費クレジット面・再実行の面 4 #ios_test_online パイプライン 事前準備 事前準備 事前準備 事前準備 ビルド ビルド ビルド ビルド テスト① テスト② テスト③ テスト④ テスト⑤ テスト⑥ テスト結果のマージ テスト結果のマージ テスト結果のマージ
  13. • ビルドははじめのステージで行う • ビルド成果物を次のステージに持っていき、それを使ってテストを実行する パイプライン 34 Bitrise Pipelines を活用するために iOS

    App プロジェクトでできること 4 #ios_test_online 事前準備 ビルド テスト① テスト② テスト③ テスト④ テスト⑤ テスト⑥
  14. • ビルドははじめのステージで行う • ビルド成果物を次のステージに持っていき、それを使ってテストを実行する パイプライン 35 Bitrise Pipelines を活用するために iOS

    App プロジェクトでできること 4 #ios_test_online 事前準備 ビルド テスト① テスト② テスト③ テスト④ テスト⑤ テスト⑥ テスト結果のマージ
  15. 36 Bitrise Pipelines を活用するために iOS App プロジェクトでできること • Bitrise のレシピサンプルは

    Test Plans を使ったものになっている 4 #ios_test_online workflow-recipes/ios-merging-test-results-and-deploying-to-the-test-reports-add-on.md at main · bitrise-io/workflow-recipes https://github.com/bitrise-io/workflow-recipes/blob/main/recipes/ios-merging-test-results-and-deploying-to-the-test-reports-add-on.md
  16. 38 Bitrise Pipelines を活用するために iOS App プロジェクトでできること • Bitrise Pipelines

    は現時点でビジュアルエディターが存在しない 4 #ios_test_online
  17. 39 Bitrise Pipelines を活用するために iOS App プロジェクトでできること • bitrise.yml を直接書く必要がある

    • 難しい文法は全くなく、サンプルレシピ通りに書けばよい ◦ Bitrise の中の人が作った 非公式なビジュアルエディタが公式ブログで紹介されている 4 #ios_test_online Build Pipelines: efficient CI/CD workflows with parallelization | Bitrise https://blog.bitrise.io/post/build-pipelines-efficient-ci-cd-workflows-with-parallelization