Codemagic で xcodebuild した
ネイティブアプリの CI 環境として最近 Codemagic が話題です。
自分の個人的にリリースしているアプリでは、Bitrise, GitHub Actions と動かしてます。実は GitHub Actions で動かすようにしたのはごく最近なんですけども macOS を動かすと大変高価(Linux の10倍!)だということを知ったので別の CI を探していました。
で、Codemagic が話題沸騰中なので設定をしました。ビルドが通るか確認しているだけなので、ビルドするだけの簡単なお仕事です。
Setup
最初にプロジェクトとプロジェクトの種類を選択します。
Configuration
するとこんな風に初期セットアップの画面になります。右側にある Enter build mode をクリックするとブラウザ上のエディタで codemagic.yml が編集できます。今回はローカルで編集したのでここは使ってません(コミット履歴がどうなるのか予測不能なので、あまりこういうの使いたくないというのがある)。
Webhooks
Webhooks は自動で設定されないようなので、ここから設定します。Update webhook というボタンを押すと、GitHub 上に自動で反映されました。
codemagic.yml
今回は「プッシュするたびにビルドする」というワークフローにしたかったので、以下のような内容にしました。Cocoapods を使っているプロジェクトですが、Pods ディレクトリをリポジトリに含めているので本当に単純に xcodebuild コマンドを呼び出しているだけです。
workflows:
build:
name: build only workflow
environment:
xcode: 13.2.1
triggering:
events:
- push
scripts:
- xcodebuild clean build -scheme "MocaBeta" -workspace Moca.xcworkspace -configuration Debug -sdk iphonesimulator
Build
Webhooks が設定されていれば、codemagic.yml の追加コミットをプッシュすると Codemagic 上でビルドがはじまります。くるくるインディケーターがアニメーションしてます。
問題なければ、緑ランプ点灯です。やったね。
念の為、わざと壊れたコミットをプッシュするとビルド失敗します。赤い警告怖い…!
Checks
GitHub で PR を作ったときに表示される Checks のタブにも結果が表示されてました。いいですね。
まとめ
以上です。単にビルドしてるだけなので、なんにもハマりませんでした。今回テストした codemagic.yml 追加のビルドの場合、GitHub Actions は6分36秒で、Codemagic は4分59秒でした。Codemagic のほうが25%ほど速いみたいです。いいですね。
Discussion