これは何
GitHub Actions で Xcode プロジェクトをビルドする方法のメモです。そもそも GitHub Actions って何よ?という方は下記サイトを御覧ください。
GitHub Actionsについて - GitHub ヘルプ
利用申請
GitHub Actions はまだベータ版であり、利用するには下記URLから申し込む必要があります。
現在はベータが外れています。下記URLからすぐに利用できます。
何日か待つと「使えるようにしたよ〜」といった内容のメールがGitHubから届きます。
とりあえずビルドしてみる
リポジトリのトップページに「Actions」タブが追加されているので「Set up Actions」をクリックしましょう。
スタートページが表示されます。ここでサンプルの workflow を動かすこともできますが、今回は右上の「Set up workflow youself」をクリックします。
workflow を編集する画面が表示されるので下記の yml を入力してください。
name: CI
on: [push] # git push をトリガーとする
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v1 # ソースコードをcheckout
- name: Select Xcode version # Xcode 12.4 を使う
run: sudo xcode-select -s '/Applications/Xcode_12.4.app/Contents/Developer'
- name: Show Xcode version
run: xcodebuild -version
- name: Build # シミュレーター向けにビルド
run: xcodebuild -sdk iphonesimulator -configuration Debug build
※利用できる Xcode のバージョン一覧はこちら
せっかくなので上記内容を適当なブランチに push してプルリクエストを作成してみましょう。「Checks」タブで workflow が動いていることが確認できます。
これで Xcode プロジェクトをビルドできました!
この要領でテストを実行したり、IPAを書き出したりもできそうですね。
xcodebuild
については下記サイトで丁寧に解説されています。
CocoaPods や Carthage を使う
GitHub Actions の仮想環境にはすでに CocoaPods や Carthage がインストールされているので
- name: CocoaPods
run: pod install
- name: Carthage
run: carthage bootstrap --platform iOS --cache-builds
のように利用できます。
2019/11/20 追記:キャッシュも使えるようになりました
- name: Cache CocoaPods files
uses: actions/cache@preview
with:
path: Pods
key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
restore-keys: |
${{ runner.os }}-pods-
- name: Cache Carthage files
uses: actions/cache@v1
with:
path: Carthage
key: ${{ runner.os }}-carthage-${{ hashFiles('**/Cartfile.resolved') }}
restore-keys: |
${{ runner.os }}-carthage-