初記事になります、新卒2年目の村瀬です。
7月30日(火)に行われた Bitrise User Group Meetup #1 に参加してきました。
Androidを初めてはや10ヶ月が経とうとしていますが、学びが多すぎてできるようになる日が来るのか不安な毎日を送っています。。
本記事ではBitriseとはに始まり、勉強会に参加して学んだBitirseのメリット・デメリット、Stepの作り方について紹介したいと思います。
Bitriseとは
Bitriseとはモバイルアプリ向けクラウドベースのCI/CDプラットフォームを提供しているサービスです。
。。。CI/CD?
CIとは
- Continuous Integration(継続的インテグレーション)の略
- 定期的にビルド・テスト・デプロイなどを自動で実行する仕組み
CDとは
- Continuous Delivery(継続的デリバリー)の略
- CIを拡張した手法で、ビルドやテストだけでなくリリースプロセス全体を自動化する仕組み
つまり、CI/CDを導入し自動化・半自動化することで、開発の効率化、品質の担保・向上が期待できるようになります。
Bitriseの特徴・設定
WorkflowとStepという概念を使って設定できます。
ある1つのアプリに対しWorkflowを持たせ、そのWorkflowの中でStepを管理します。
下図の左が初期状態のStep一覧です。
一番下にDeployGateへの配布用StepとSlackへの通知用Stepを追加しました。
そのような設定をするだけで、下図のような運用ができるようになります。
(Gitとの連携は別途設定を行う必要があります。)
開発中にGitにpushすると、Bitriseで自動的にビルドが始まります。
Bitriseを介して行われる、Slackへの通知やDeployGateでアプリを配布するという項目をStepといい、このStepをWorkflowに追加することで設定できます。
Stepの種類は多種多様に用意されているので、目的にあったStepを選んでWorkflowを作成することで開発の効率を向上させることができます。
Bitriseのメリット・デメリット
メリット
- ワークフローとトリガーの仕組みが柔軟で強力
- スケジュール実行が無限にできる(始業前や深夜に登録しておいたら便利な設定とか)
- WebUIが便利
デメリット
- ログが見づらい(らしい)
- コマンドラインでできる操作が少ない(らしい)
- skip ci というコマンドで他のCIサービスではスキップできるはずなのに、Bitriseではやりにくい(らしい)
デメリットを解消するために
- ブランチをわけてそのブランチに対するワークフローを実行するようにする→役割の明確化
- ライブラリの自動更新(少し設定しないといけない)→祈ってリリースすることが減る
- WebUIではなく、Bitrise.ymlという仕組みでも管理できる
デメリットについては現段階で私は感じたことがない、使用したことがないので(らしい)をつけています。
Stepの作り方
上記でSlackへの通知やDeployGateでアプリを配布するなどのStepを紹介をしましたが、このStepというのは自分でも作ることができるみたいです。
作り方は 公式サイト に詳しくまとめられています。
Stepのメリット
- 目的ごとにStepがあるとわかりやすい
- WebUIでやりやすい
- 便利だと思って作ったStepをシェアできる(プライベートでも作れる)
登壇者の方が、「作ってみることが大事。結局やってみないとわからない。」と仰っていたので、途中まで作ってみました。
Stepの内容
Bitriseでビルドした結果を、WeTransfer という無料のファイル転送サービスを使って第三者に送信するStep
Step作成
全ての手順は 公式サイト に書かれているので、この通りに進めていけば作成できると思います。
今回はシェアの手前まで作ってみました。
作ってみた感想
思っていたより簡単にできるんだなと思いました(詰まったところも多々ありましたが)。
一通り作ってみた中で諸々の設定などは省いて、特に作りやすい・わかりやすいなと思った部分を紹介します。
第三者にビルド結果を送信するStepを作成するということなので、以下の情報をユーザに登録してもらう必要があります。
- 送信者のメールアドレス
- 受信者のメールアドレス
- WeTransferに送信するファイル
- リンクに付随する短いメッセージ
これらの登録フォームを作成するには以下のコードをstep.ymlに追加するだけで良いそうです。
# 送信者のメールアドレス - wtu_mailsender: opts: title: Email of the sender is_expand: true is_required: true # 受信者のメールアドレス - wtu_mailreceiver: opts: title: One or more email separated by comma for receiver is_required: true # wetransferに送信するファイル - wtu_filepath: opts: title: The path where are stored one or more files to upload is_required: true # リンクに付随する短いメッセージ - wtu_message: opts: title: A little body for the mail is_required: true |
上記のコードを実際の画面で見るとこのようになるみたいです。
送信者のメールアドレスと受信者のメールアドレスを登録する部分です。
他にもStepの内容によって項目を追加できるようです。
実際のWebUIで見るためには、ローカルで作成したStepをBitriseに提出し承認してもらう必要があるとのことです。
所感
初めてCIやBitriseについて教えていただいたときは、概要はなんとなくわかったかな。。という感じでした。
その後自分で作ったアプリをBitriseを使ってDeployGateで配布する機会を作っていただき、ビルドの様子や実際にアプリが配布される様子を確認することでBitriseの機能を実感することができました。
またGitにpushするだけで、リモートのBitriseでビルドが動き、更にアプリを配布できるという自動化の流れを体験し、自動化の素晴らしさも実感しました。
今回の勉強会でもStepの作成方法など概要を教えていただきましたが、やはりなんとなくわかったけど難しそう。。という印象を持っていました。
しかし翌日実際にStepを作ってみることで、思っていたほど難しくはなさそうだということに気づくことができました。
Bitriseを通して、「やってみないとわからない」ということを強く実感しました。
私は初めてやってみることに対して、難しそう…できなさそう…やってみたいけど、うーん…など思い、やってみることに苦手意識があったのですが、今後はなんでも挑戦してみようと思います。
この記事を書いた人
-
新卒2年目のエンジニアです。
日々Androidの勉強に励んでいます。
趣味は楽器演奏です。
最近書いた記事
- 2019.10.18Android端末のメモリによってライフサイクルが変わる
- 2019.08.19Bitrise User Group Meetup #1に参加し、Stepを作成してみました