Bitrise Pipelinesを使ってリリース作業を効率化するhoritamon • 2023 年 1月 17 日 @Voicy tech bar
View Slide
堀 多聞- horitamon - Androidエンジニア5年目2020/9〜 Voicy品質改善チーム最近はiOSの実装時間の方が長いTwitter: @horitamon
© Voicy, Inc.❶ Bitrise Pipelinesとは ❷ Bitrise Pipelinesでリリース作業の効率化 ❸ Pipelinesを使うメリット ❹ 少しだけ困ったこと 今日お話しすること
Bitrise Pipelinesとは
© Voicy, Inc.Bitriseとは https://bitrise.io/ モバイル特化型のCI/CDツール
© Voicy, Inc.Bitrise Pipelinesとは ● Bitriseのフロー構成の最上位、 元々あったWorkflowという処理のまとまりのさらに上位の概念 ● クレジットベース(時間消費型)のアカウントでのみ利用可能 ● 公式ブログ
© Voicy, Inc.並列実行 順次実行 Bitrise Pipelinesの特徴
© Voicy, Inc.● Stage=Workflowのまとまり ● 同じStageのWorkflowは並列で実行される Stage並列実行 Workflow AWorkflow BWorkflow C
© Voicy, Inc.順次実行 ● Stage内のWorkflowの全てが完了してから次のStageに進む Stage 1Workflow AWorkflow BWorkflow CStage 2Workflow DWorkflow EStage 3Workflow F
Bitrise Pipelinesで リリース作業の効率化
© Voicy, Inc.Voicyアプリのリリース手順 Workflow 実行トリガーUnit Test MainブランチへのマージQA環境版アプリをApp Testerへ配信 手動本番アプリをストアへアップロード Tag次回releaseブランチの作成 Tagそれぞれ別作業でした…
© Voicy, Inc.並列で進める 効率を上げるには 自動で次に進める
© Voicy, Inc.成功したら自動で次へ進むようにする Unit Test QA版配信本番アップロードreleaseブランチ作成
© Voicy, Inc.同時に進められるものは同時に Unit TestQA版配信本番アップロードreleaseブランチ作成
© Voicy, Inc.全体像 Stageに分ける Stage 1Unit TestStage 2 Stage 3releaseブランチ作成QA版配信本番アップロード
© Voicy, Inc.作ってみる ymlファイルを直接編集する
© Voicy, Inc.GUIで組んだWorkflowが記載されている状態
© Voicy, Inc.Stageを定義 run_utUnit Testdeploy create_branchreleaseブランチ作成QA版配信本番
© Voicy, Inc.Pipelineを定義
© Voicy, Inc.最後にトリガーに追加すれば完成
© Voicy, Inc.実行してみると
Pipelinesを使うメリット
© Voicy, Inc.並列実行する方法は元々あった Start BuildとWait for Buildを使う
© Voicy, Inc.元々あった方法 Workflow AWorkflow BWorkflow CWorkflow DWorkflow EWorkflow FWorkflow
© Voicy, Inc. クレジットを消費しない 途中からやり直せる Pipelinesを使うメリット
© Voicy, Inc.元々あった方法だと… Workflowを呼ぶWorkflow自体でクレジットを消費する Workflow AWorkflow BWorkflow CWorkflow DWorkflow EWorkflow FWorkflow
© Voicy, Inc.Pipeline自体はクレジット消費なし Stage 1Workflow AWorkflow BWorkflow CStage 2Workflow DWorkflow EStage 3Workflow Fクレジットを消費するのはWorkflowのみ
© Voicy, Inc.「待ち」が無いなら従来の方法でもよい ● 複数のWorkflowを同一トリガーで並列で動かしたいだけ →Start Buildだけでよい ● クレジット消費は少ない Workflow AWorkflow BWorkflow Cstart
© Voicy, Inc.途中で失敗すると… 最初からしかやり直せない Workflow AWorkflow BWorkflow CWorkflow DWorkflow EWorkflow FWorkflow
© Voicy, Inc.Pipelineは失敗した時点から再開できる Stage 1Workflow AWorkflow BWorkflow CStage 2Workflow DWorkflow EStage 3Workflow F
© Voicy, Inc.
少しだけ困ったこと
© Voicy, Inc.ymlファイルを直接書き換える必要がある ● まだ簡単なフローだから簡単に書けた ● 複雑だと大変かも
© Voicy, Inc.謎にymlファイルがロールバックする ● 同時にWorkflowも作っていた時に ymlファイルからPipelineがごっそり消えた →Git管理しましょう
© Voicy, Inc.まとめ ❶ Pipelinesを使うことで既存のWorkflowの自動化・並列化が手軽にできる ❷ Pipeline自体はクレジットを消費しない ❸ 途中のWorkflowが失敗してもそこからやり直せる ❹ ymlを直接編集する必要がある
© Voicy, Inc.Voicy のエンジニアが テックや開発組織について いろいろ語っています voi-chord配信中!
音声×テクノロジーでワクワクする社会をつくる