Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

© Voicy, Inc. ❶ Bitrise Pipelinesとは
 ❷ Bitrise Pipelinesでリリース作業の効率化
 ❸ Pipelinesを使うメリット
 ❹ 少しだけ困ったこと
 今日お話しすること


Slide 4

Slide 4 text

Bitrise Pipelinesとは


Slide 5

Slide 5 text

© Voicy, Inc. Bitriseとは
 
 
 
 
 
 
 https://bitrise.io/
 
 モバイル特化型のCI/CDツール


Slide 6

Slide 6 text

© Voicy, Inc. Bitrise Pipelinesとは
 ● Bitriseのフロー構成の最上位、
 元々あったWorkflowという処理のまとまりのさらに上位の概念
 ● クレジットベース(時間消費型)のアカウントでのみ利用可能
 ● 公式ブログ
 
 


Slide 7

Slide 7 text

© Voicy, Inc. 並列実行
 順次実行
 Bitrise Pipelinesの特徴
 


Slide 8

Slide 8 text

© Voicy, Inc. ● Stage=Workflowのまとまり
 ● 同じStageのWorkflowは並列で実行される
 Stage 並列実行
 Workflow A Workflow B Workflow C

Slide 9

Slide 9 text

© Voicy, Inc. 順次実行
 ● Stage内のWorkflowの全てが完了してから次のStageに進む
 Stage 1 Workflow A Workflow B Workflow C Stage 2 Workflow D Workflow E Stage 3 Workflow F

Slide 10

Slide 10 text

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


Slide 11

Slide 11 text

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


Slide 12

Slide 12 text

© Voicy, Inc. 並列で進める
 効率を上げるには
 
 自動で次に進める


Slide 13

Slide 13 text

© Voicy, Inc. 成功したら自動で次へ進むようにする
 Unit Test QA版配信 本番アップ ロード release ブランチ作成

Slide 14

Slide 14 text

© Voicy, Inc. 同時に進められるものは同時に
 Unit Test QA版配信 本番アップロード release ブランチ作成

Slide 15

Slide 15 text

© Voicy, Inc. 全体像
 Stageに分ける
 Stage 1 Unit Test Stage 2 Stage 3 releaseブランチ作成 QA版配信 本番アップロード

Slide 16

Slide 16 text

© Voicy, Inc. 作ってみる
 ymlファイルを 直接編集する

Slide 17

Slide 17 text

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


Slide 18

Slide 18 text

© Voicy, Inc. Stageを定義
 
 run_ut Unit Test deploy create_branch release ブランチ作成 QA版配信 本番

Slide 19

Slide 19 text

© Voicy, Inc. Pipelineを定義
 


Slide 20

Slide 20 text

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


Slide 21

Slide 21 text

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


Slide 22

Slide 22 text

Pipelinesを使うメリット


Slide 23

Slide 23 text

© Voicy, Inc. 並列実行する方法は元々あった
 Start BuildとWait for Buildを使う


Slide 24

Slide 24 text

© Voicy, Inc. 元々あった方法
 Workflow A Workflow B Workflow C Workflow D Workflow E Workflow F Workflow

Slide 25

Slide 25 text

© Voicy, Inc. 
 
 
 
 クレジットを消費しない
 
 
 
 
 途中からやり直せる
 Pipelinesを使うメリット


Slide 26

Slide 26 text

© Voicy, Inc. 元々あった方法だと…
 Workflowを呼ぶWorkflow自体でクレジットを消費する
 Workflow A Workflow B Workflow C Workflow D Workflow E Workflow F Workflow

Slide 27

Slide 27 text

© Voicy, Inc. Pipeline自体はクレジット消費なし
 Stage 1 Workflow A Workflow B Workflow C Stage 2 Workflow D Workflow E Stage 3 Workflow F クレジットを消費するのはWorkflowのみ


Slide 28

Slide 28 text

© Voicy, Inc. 「待ち」が無いなら従来の方法でもよい
 ● 複数のWorkflowを同一トリガーで並列で動かしたいだけ
 →Start Buildだけでよい
 ● クレジット消費は少ない
 Workflow A Workflow B Workflow C start

Slide 29

Slide 29 text

© Voicy, Inc. 
 
 
 
 クレジットを消費しない
 
 
 
 
 途中からやり直せる
 Pipelinesを使うメリット


Slide 30

Slide 30 text

© Voicy, Inc. 途中で失敗すると…
 最初からしかやり直せない
 Workflow A Workflow B Workflow C Workflow D Workflow E Workflow F Workflow

Slide 31

Slide 31 text

© Voicy, Inc. Pipelineは失敗した時点から再開できる
 Stage 1 Workflow A Workflow B Workflow C Stage 2 Workflow D Workflow E Stage 3 Workflow F

Slide 32

Slide 32 text

© Voicy, Inc.

Slide 33

Slide 33 text

少しだけ困ったこと


Slide 34

Slide 34 text

© Voicy, Inc. ymlファイルを直接書き換える必要がある
 ● まだ簡単なフローだから簡単に書けた
 ● 複雑だと大変かも


Slide 35

Slide 35 text

© Voicy, Inc. 謎にymlファイルがロールバックする
 ● 同時にWorkflowも作っていた時に
 ymlファイルからPipelineがごっそり消えた
  →Git管理しましょう


Slide 36

Slide 36 text

© Voicy, Inc. まとめ
 ❶ Pipelinesを使うことで既存のWorkflowの自動化・並列化が手軽にできる
 ❷ Pipeline自体はクレジットを消費しない
 ❸ 途中のWorkflowが失敗してもそこからやり直せる
 ❹ ymlを直接編集する必要がある


Slide 37

Slide 37 text

© Voicy, Inc. Voicy のエンジニアが
 テックや開発組織について
 いろいろ語っています
 voi-chord配信中!


Slide 38

Slide 38 text

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