42
Help us understand the problem. What are the problem?

posted at

updated at

GitHub Actions で Xcode プロジェクトをビルドしてみる

これは何

GitHub Actions で Xcode プロジェクトをビルドする方法のメモです。そもそも GitHub Actions って何よ?という方は下記サイトを御覧ください。

GitHub Actionsについて - GitHub ヘルプ

利用申請

GitHub Actions はまだベータ版であり、利用するには下記URLから申し込む必要があります。
現在はベータが外れています。下記URLからすぐに利用できます。

何日か待つと「使えるようにしたよ〜」といった内容のメールがGitHubから届きます。

とりあえずビルドしてみる

リポジトリのトップページに「Actions」タブが追加されているので「Set up Actions」をクリックしましょう。

スクリーンショット 2019-08-29 21.56.10.png

スタートページが表示されます。ここでサンプルの workflow を動かすこともできますが、今回は右上の「Set up workflow youself」をクリックします。

スクリーンショット 2019-08-29 21.56.54.png

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 が動いていることが確認できます。

スクリーンショット 2019-08-29 23.24.51.png

これで 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-

リンク

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
42
Help us understand the problem. What are the problem?