$30 off During Our Annual Pro Sale. View Details »

Bitrise Pipelinesを使って リリース作業を効率化する

horitamon
January 17, 2023
52

Bitrise Pipelinesを使って リリース作業を効率化する

horitamon

January 17, 2023
Tweet

Transcript

  1. Bitrise Pipelinesを使って
    リリース作業を効率化する
    horitamon • 2023 年 1月 17 日 @Voicy tech bar

    View Slide

  2. 堀 多聞
    - horitamon - Androidエンジニア5年目
    2020/9〜 Voicy
    品質改善チーム
    最近はiOSの実装時間の方が長い
    Twitter: @horitamon

    View Slide

  3. © Voicy, Inc.
    ❶ Bitrise Pipelinesとは

    ❷ Bitrise Pipelinesでリリース作業の効率化

    ❸ Pipelinesを使うメリット

    ❹ 少しだけ困ったこと

    今日お話しすること


    View Slide

  4. Bitrise Pipelinesとは


    View Slide

  5. © Voicy, Inc.
    Bitriseとは







    https://bitrise.io/


    モバイル特化型のCI/CDツール


    View Slide

  6. © Voicy, Inc.
    Bitrise Pipelinesとは

    ● Bitriseのフロー構成の最上位、

    元々あったWorkflowという処理のまとまりのさらに上位の概念

    ● クレジットベース(時間消費型)のアカウントでのみ利用可能

    ● 公式ブログ



    View Slide

  7. © Voicy, Inc.
    並列実行

    順次実行

    Bitrise Pipelinesの特徴


    View Slide

  8. © Voicy, Inc.
    ● Stage=Workflowのまとまり

    ● 同じStageのWorkflowは並列で実行される

    Stage
    並列実行

    Workflow A
    Workflow B
    Workflow C

    View Slide

  9. © Voicy, Inc.
    順次実行

    ● Stage内のWorkflowの全てが完了してから次のStageに進む

    Stage 1
    Workflow A
    Workflow B
    Workflow C
    Stage 2
    Workflow D
    Workflow E
    Stage 3
    Workflow F

    View Slide

  10. Bitrise Pipelinesで

    リリース作業の効率化


    View Slide

  11. © Voicy, Inc.
    Voicyアプリのリリース手順

    Workflow 実行トリガー
    Unit Test Mainブランチへのマージ
    QA環境版アプリをApp Testerへ配信 手動
    本番アプリをストアへアップロード Tag
    次回releaseブランチの作成 Tag
    それぞれ別作業でした…


    View Slide

  12. © Voicy, Inc.
    並列で進める

    効率を上げるには


    自動で次に進める


    View Slide

  13. © Voicy, Inc.
    成功したら自動で次へ進むようにする

    Unit Test QA版配信
    本番アップ
    ロード
    release
    ブランチ作成

    View Slide

  14. © Voicy, Inc.
    同時に進められるものは同時に

    Unit Test
    QA版配信
    本番アップロード
    release
    ブランチ作成

    View Slide

  15. © Voicy, Inc.
    全体像

    Stageに分ける

    Stage 1
    Unit Test
    Stage 2 Stage 3
    releaseブランチ作成
    QA版配信
    本番アップロード

    View Slide

  16. © Voicy, Inc.
    作ってみる

    ymlファイルを
    直接編集する

    View Slide

  17. © Voicy, Inc.
    GUIで組んだWorkflowが記載されている状態


    View Slide

  18. © Voicy, Inc.
    Stageを定義


    run_ut
    Unit Test
    deploy create_branch
    release
    ブランチ作成
    QA版配信
    本番

    View Slide

  19. © Voicy, Inc.
    Pipelineを定義


    View Slide

  20. © Voicy, Inc.
    最後にトリガーに追加すれば完成


    View Slide

  21. © Voicy, Inc.
    実行してみると


    View Slide

  22. Pipelinesを使うメリット


    View Slide

  23. © Voicy, Inc.
    並列実行する方法は元々あった

    Start BuildとWait for Buildを使う


    View Slide

  24. © Voicy, Inc.
    元々あった方法

    Workflow A
    Workflow B
    Workflow C
    Workflow D
    Workflow E
    Workflow F
    Workflow

    View Slide

  25. © Voicy, Inc.




    クレジットを消費しない





    途中からやり直せる

    Pipelinesを使うメリット


    View Slide

  26. © Voicy, Inc.
    元々あった方法だと…

    Workflowを呼ぶWorkflow自体でクレジットを消費する

    Workflow A
    Workflow B
    Workflow C
    Workflow D
    Workflow E
    Workflow F
    Workflow

    View Slide

  27. © Voicy, Inc.
    Pipeline自体はクレジット消費なし

    Stage 1
    Workflow A
    Workflow B
    Workflow C
    Stage 2
    Workflow D
    Workflow E
    Stage 3
    Workflow F
    クレジットを消費するのはWorkflowのみ


    View Slide

  28. © Voicy, Inc.
    「待ち」が無いなら従来の方法でもよい

    ● 複数のWorkflowを同一トリガーで並列で動かしたいだけ

    →Start Buildだけでよい

    ● クレジット消費は少ない

    Workflow A
    Workflow B
    Workflow C
    start

    View Slide

  29. © Voicy, Inc.




    クレジットを消費しない





    途中からやり直せる

    Pipelinesを使うメリット


    View Slide

  30. © Voicy, Inc.
    途中で失敗すると…

    最初からしかやり直せない

    Workflow A
    Workflow B
    Workflow C
    Workflow D
    Workflow E
    Workflow F
    Workflow

    View Slide

  31. © Voicy, Inc.
    Pipelineは失敗した時点から再開できる

    Stage 1
    Workflow A
    Workflow B
    Workflow C
    Stage 2
    Workflow D
    Workflow E
    Stage 3
    Workflow F

    View Slide

  32. © Voicy, Inc.

    View Slide

  33. 少しだけ困ったこと


    View Slide

  34. © Voicy, Inc.
    ymlファイルを直接書き換える必要がある

    ● まだ簡単なフローだから簡単に書けた

    ● 複雑だと大変かも


    View Slide

  35. © Voicy, Inc.
    謎にymlファイルがロールバックする

    ● 同時にWorkflowも作っていた時に

    ymlファイルからPipelineがごっそり消えた

     →Git管理しましょう


    View Slide

  36. © Voicy, Inc.
    まとめ

    ❶ Pipelinesを使うことで既存のWorkflowの自動化・並列化が手軽にできる

    ❷ Pipeline自体はクレジットを消費しない

    ❸ 途中のWorkflowが失敗してもそこからやり直せる

    ❹ ymlを直接編集する必要がある


    View Slide

  37. © Voicy, Inc.
    Voicy のエンジニアが

    テックや開発組織について

    いろいろ語っています

    voi-chord配信中!


    View Slide

  38. 音声×テクノロジーでワクワクする社会をつくる 


    View Slide