CI

GitHub ActionsでiOSのプロジェクトをビルドしたい!

github-actions-ios-build

GitHub ActionsでiOSのプロジェクトをビルドしたい!

CI環境として、GitHub Actionsを使ってみたい!

アプリを開発する時に、以下のようなことを自動化してみたいと思いました。

  • プッシュした時に、ビルドやテストを実行する。
  • プルリクを出した時に、ビルドやテストに失敗している時はマージできないようにする。
  • developブランチにマージされたタイミングで、開発用のipaをビルドする。
  • releaseブランチにマージされたタイミングで、デプロイする。

そこでCI環境を使ってみようと思い、今回はGithub Actionsについて、調べてみました。

使い方

1.GitHubのプロジェクトを開き、「Actions」タブを開く。そうすると、以下のような画面が表示される。 右側の「Set up a workflow yourself」を選択する。

2. GitHub actionsで使用するworkflowのymlファイルのテンプレートが表示されます。

ちなみにこのままテストをすると、失敗します。(swiftコマンドが実行されるので、当然ですが、、、)

 

3.テンプレートのymlファイルを修正する。 とりあえず最低限動くように、以下のように修正しました。 scheme名を自分のプロジェクトのものに変更してもらえれば、そのまま使えると思います。

name: Swift

on: [push]

jobs:
  build:

    runs-on: macOS-latest

    steps:
    - uses: actions/checkout@v1
    # Select Xcode version
    - name: Select Xcode version
      run: sudo xcode-select -s '/Applications/Xcode_11.3.app/Contents/Developer'
    - name: Show Xcode version
      run: xcodebuild -version
      # Run build
    - name: Build
      run: xcodebuild
            -scheme Swift-github-actions
            -sdk iphonesimulator
            -configuration Debug
            build
      # Run unit test
    - name: Run tests
      run: xcodebuild
            -scheme Swift-github-actions
            -sdk iphonesimulator
            -destination 'platform=iOS Simulator,name=iPhone 11 Pro Max'
            clean test

4. 修正が終わったら、コミットする。「Start commit」からコミットします。

5.「Actions」タブを開き、workflowの実行結果を確認する。きっと成功しているはずです! ちなみにデフォルトではリポジトリへのPushがworkflow実行のトリガーになっています。

Swift Package Manager(SPM)を使ってみる。

上記のworkflowであれば、SPMをインストールしても、そのままビルドとテストが成功するはずです。 以下、SPMでRxSwiftをインストールしてから、Pushしたものです。無事成功しています。

やってみた感想

Bitriseの使用も検証しましたが、普段使っているGithubのサービス内で完結できるのは魅力的かなと思いました。 最低限のworkflowしか記述していないので、今後追加して、最初に書いたようなこともできるようにしたいです。 修正点があれば、ご指摘いただけると。

テストで使用しているリポジトリ

https://github.com/u5-03/Swift-github-actions Publicリポジトリであれば、Github Actionsは無料で使用できるので、検証で使用する場合はPublicリポジトリで!

参考資料

0

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA