やんまメモ

アプリやWeb開発などのことを適当に書いていきます。

俺的Bitrise活用術

f:id:yyanma:20160315011449j:plain:w100

ここ半年お仕事でiOSアプリを開発している中でBitriseというCI/CDサービスが非常によかったので俺的活用術として紹介したいと思います。

Bitriseとは

モバイルアプリ向けのCI/CDサービスです。
無料でもそこそこ使える感じです。

www.bitrise.io

詳しくは私がBitriseを知るきっかけとなったOTOBANKさんの記事や、Qiitaのkeygxさんの記事がわかりやすいです。

CircleCIのiOSビルドが有料プラン化するらしいので、Bitriseの無料プランに乗り換えてみた - OTOBANK Engineering Blog

iOS用のCIサービスBitriseを使ってみた - Qiita

ちなみにAndroidもXamarinもいけますし、頑張ってシェルスクリプト書けば、当たり前ですが何でもいけちゃいます。

スケジュールビルドが熱い!

CircleCIを以前使っていた時、スケジュールビルドできないかな〜と思っていました。
というのも、日々変わっていくアプリを、ビルド環境のない人がいつでも触れる環境を作りたかったのです。
GitHubと連携する関係上、プッシュやPRをビルドのきっかけにするCIサービスは多いのはしょうがないと思っていた数カ月前の私……。

BitriseはBETAながらスケジュールビルドできます!
ビルド開始ボタンを押して、スケジュールビルドのトグルをONにして、さくっと設定するだけ!

f:id:yyanma:20160315011730p:plain:w300

曜日と時間帯を指定できるので、10分制限にかからない時間帯はどこだ……という楽しみもあります。

ワークフローが熱い!

Bitriseのワークフロー(WF)は、証明書入れて、GitHubからクローンして、CocoaPods実行して……といった各ステップをまとめる単位で、ビルドの実行単位になります。
ステップ一覧を見てもらえば分かる通り、Bitriseのステップだけで十分いい感じですし、fastlaneもあるので余計に良いですね!

普通にWFを使うだけでもいい感じなのですが、もうちょっと細かい設定もBitriseはできました。

例えば、スケジュールビルドはSlackに通知したい、でも手動実行したビルドは通知したくないといった場合を考えてみます。
力技だとまるごとコピーして、片方から通知部分を削除すればとりあえず実現できます。
最初そうしていたのですが、ビルド処理を少し変えたくなったり、ステップの更新があったりすると、どっちも修正しなくちゃいけなくて二度手間感がありました。
何より、似たようなのは共通化したくなりますよね?

このWF、実行前後に他のWFを組み込めます(結構大きめに書いてあったのに、最近気づきました😓)。
というわけで、ビルドだけのWFを作って、スケジュールビルド用WFと手動ビルド用WFのbeforeにセットしました。
あとは各WF内に個別のステップを追加していけばビルド処理部分の共通化完了です。
編集画面まで行かないとbeforeとafterにセットしたWFが見られないのがちょっと残念なところです。。。

f:id:yyanma:20160315012002p:plain

クーポンが熱い!

ちなみに有料プランにしようかなと思っている方は、以下のクーポンコードで2ヶ月50%OFFになるようです。
少なくとも3ヶ月前には適用できましたが、今はどうだか分かりません。

https://www.producthunt.com/tech/bitrise-2-0

追記:試してみようかなと思った方、以下リンクより登録頂けると私のビルド時間が伸びて非常に助かります!

https://app.bitrise.io/users/sign_up?referrer=e42e9eac3af4c79c

Bitriseくんはかわいい

f:id:yyanma:20160315011449j:plain:w100

ビルド失敗した時でもこの顔を見るとちょっとやさしい気持ちになれます。

おわりに

とりあえず無料でスタートできますし、さくっと設定もできると思うので、ぜひお試し下さい!!
小さいプロジェクトをナイトリービルドという使い方なら、無料の制限内でも十分使えます😊