Flutterメモ 番外編 GitHubとCIツールの連携(Codemagic)
今回やること
Codemagicを選んだ理由
CIツールを使ってみたかったんですが、調べてみるとCodemagicというCIツールが評判がいいらしい。どうやらFlutterに特化しているらしく、競合(Flutterにおいては後発っぽい)のBitriseよりもいろいろ充実してるっぽい。
codemagicの最強なところはSlackからビルド済みのアプリをインストールできること。
— shogo.yamada@Flutterマン (@yshogo87) 2019年4月17日
ビルドの遅さだけ解決してくれたら絶対こっち使う pic.twitter.com/fd8if54qgg
ただ、ビルドが若干遅いらしく、対応中とのことらしいです。
codemagicのiOSのビルドが遅い問題、今最優先で対応してるらしい。
— shogo.yamada@Flutterマン (@yshogo87) 2019年4月18日
ビルドが遅い以外は使い心地が最高なので、ここだけ改善されればずっと使うと思う。 pic.twitter.com/PZZvGO3mxV
今回はこのCodemagicの方を試してみることにしました。
GitHubにリポジトリを用意
今回はこのリポジトリを用意しました。今回はPublicリポジトリですが、CodemagicはPrivateでも使えるっぽいです。
https://github.com/TetsuFe/spring_app_2019github.com
Codemagicへの登録
以下のリンクから登録します。
GitHub連携認証を使ったのですが、登録が完了すると同時に以下のような画面に。
CIを導入したいリポジトリに対して「Start your first build」ボタンを押すと、なんといきなりビルドが始まりました!
簡単すぎる・・(他のCIツールもそうだったかも?)
トリガー
このままでは手動でCIを回さないといけないので、トリガーを設定します。
App Settingsから、Build Triggerを展開します。
以下のように設定できます。
- ブランチ名
- タイミング
- push時(Trigger on every push)
- artifacts(appの生成)はあり
- pull requestのupdate時(Trigger on pull request update)
- artifacts(appの生成)はなし
- push時(Trigger on every push)
また、説明は割愛しますが、走らせる処理をブランチごとに分岐させたい時は、workflow自体を複数作ることで可能らしいです。
参考:CodemagicでFlutterアプリのビルド・配信をする — iOS編 – Flutter 🇯🇵 – Medium
この記事の「トリガー」を参照してください。
slack連携
設定画面(App Settings?)を開いて、publishの項目を展開すると、以下の様にslack連携の項目が現れます。
連携に成功すると、以下の様にチャンネルと通知のトリガーを選択します。
次回のビルドから、以下のようにslack通知が来るようになります!ビルドは結構時間がかかるので、通知を設定しておくと便利そうです。
Adhoc配信
Adhoc配信自体が正直よくわかっていませんが、とりあえずやってみます。
App Settingsから、publishの項目を展開し、さらに「iOS code signing」を展開します。ここのフォームにアカウント情報を登録します。今回はAutomaticを選択します。
もう一度「Start new build」してみます。
slackの通知にipaファイルが追加されています!
iPhoneからリンクをクリックしてみると・・(slackからsafariへ移動しましょう)
インストール確認ダイアログが!
ホーム画面にインストールされました!
ちゃんと起動しました!!簡単すぎる…
このリンクを配布すればいろんな人にダウンロードしてもらえるのでかなり便利です。
GitHubのReadmeにバッジをつける
README.mdにここにあるmarkdown用のスニペットを追加してコミットするだけです。
いい感じです!