🎼

Codemagic で xcodebuild した

2022/04/25に公開

ネイティブアプリの CI 環境として最近 Codemagic が話題です。

https://codemagic.io/

自分の個人的にリリースしているアプリでは、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