FlutterでCI環境作ろうとしたけど諦めた話
結論からいうと、金銭的な問題でCI環境を作れませんでした。
仕組みはちゃんとあり、お金を出せば実現できます。
やりはじめてから、諦めるまでの話を書いていきたいと思います。
動機
CI環境を作ろうと思った動機はこんな感じです
・テストコード書いてるのでマージした瞬間毎回テストを実行したかった
・アプリをビルドしてDeploy gateで配布したい
↑の理由でCIの導入を検討しました。
Android studioから実機のiPhoneにアプリいれようとしたらエラーになって、Xcodeからビルドしたときはちゃんと入るみたいな辛いこともあったので
やはり開発はシミュレータを使うのがいいと思います。
まずはTravisCIから
とりあえずググったら一番上にFlutterをTravisでビルドする記事が出てきたので記事通りにやってみました。
.travis.ymlファイルはこんな感じ
os: osx
language: generic
osx_image: xcode9.4
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- libstdc++6
- fonts-droid
before_script:
- pip install six
- brew update
- brew install --HEAD libimobiledevice
- brew install ideviceinstaller
- brew install ios-deploy
- git clone https://github.com/flutter/flutter.git -b beta --depth 1
- ./flutter/bin/flutter doctor
script:
- ./flutter/bin/flutter test
- ./flutter/bin/flutter build -v ios
cache:
directories:
- $HOME/.pub-cache
ここで問題が発生しました。
吐き出すログが多すぎて無料枠を突破
こんなメッセージが表示され、ビルドが止まってしまいました。
ここで諦めて、別のCIサービスを検討し始めました。
CircleCIを検討
次にCircle CI を検討しました。
ググるとこんな記事が出てきました。
Circle CI ではflutter用のdocker imageが用意されてるようでTravisより設定ファイルは簡単でした。
設定ファイルはこんな感じ
version: 2
jobs:
build:
docker:
- image: cirrusci/flutter
steps:
- checkout
- run: flutter doctor
- run: flutter test
- run: flutter build -v ios
ここで問題が発生しました。
macOS環境で動かす場合は有料ということでした、、、
ここでCI環境構築の優先度を下げました。
結局お金がかかる。
これって当たり前の話ですが、こういうクラウド環境ってお金がかかるんですよね。
お試しで1アプリぐらいとか、月何時間のビルドまで無料とかで個人で作ってるアプリくらいなら無料でいけると思ってましたが、そこまで甘くなかったです。
ですが、FlutterアプリをCIでビルドすることはできます。
実践ではある程度の開発費用はでるとは思いますのでCIや、Deploygateとかのサービスを使って開発スピードを上げていけると思います。
自分ひとりで開発しているアプリなので一旦優先度を下げます。
アプリをリリースしてどうしても欲しくなったら課金してもう一度挑戦しようと思います!!
これからもFlutterについてのツイートをたくさんしますのでフォローの方よろしくお願いします。
投げ銭はいりません。それより無料でできる拡散をしてください!! 感想をツイートしていただけることが一番嬉しいです!!