はじめに
継続的インテグレーション(CI)は、コードの品質を維持し、効率的な開発を行うために欠かせないプロセスです。GitHub Actionsを使用することで、簡単にCIを導入し、自動的にビルドやテストを実行することができます。
準備
- Github Actionsでワークフローを実行したいプロジェクトがGithub上にアップロードします
-
.github/workflows
というディレクトリを作成してください - 作成したディレクトリにYAMLファイルを作成し、ここにGithub Actionsの設定を記述します
サンプル
サンプルとして、以下のコードを書いてみました。
今回はPR作成時にビルドとテストを実行するワークフローを書いてみました。
name: GitHub Actions Demo App
on:
pull_request:
branches:
- main
jobs:
unit-tests:
name: Run Test On PR
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Xcode
run: sudo xcode-select --switch /Applications/Xcode_15.3.app
- name: Build
run: xcodebuild -scheme ArticleSearcher -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.4'
- name: Run Tests
run: xcodebuild -scheme ArticleSearcher -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.4' test
解説
1. on
on:
pull_request:
branches:
- main
on: pull_request
で、PRが作成されたときにワークフローをトリガーするように設定しています。また、branches: - main
で、メインブランチに対するプルリクエストのみが対象となるようにしています。
2. jobs
jobs:
unit-tests:
name: Run Test On PR
runs-on: macos-latest
on
でトリガーを設定したタイミングで、jobs
に記載してあるワークフローが実行されます。name
はこのjobに任意の名前つけることができます。また、今回はruns-on: macos-latest
で最新のmacOSバージョンで実行されるように指定しています。
3. steps
各ジョブにはいくつかのステップに分けて具体的な処理を定義することができます。
- name: Checkout
uses: actions/checkout@v4
このステップはGithub Actions標準のアクションで、ワークフロー内でリポジトリにアクセスできるようなります。
- name: Set up Xcode
run: sudo xcode-select --switch /Applications/Xcode_15.3.app
Xcodeのバージョンを指定してセットアップします。このサンプルでは、Xcode 15.3を使用するよう設定しています。
- name: Build
run: xcodebuild -scheme ArticleSearcher -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.4'
xcodebuild
コマンドを使って、指定したシミュレータ環境(iPhone 15、iOS 17.4)でアプリをビルドします。
- テスト実行
- name: Run Tests
run: xcodebuild -scheme ArticleSearcher -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.4' test
こちらも xcodebuild
コマンドを使い、ビルドしたアプリに対してユニットテストを実行します。
まとめ
これにより、PR作成時に自動でビルドとテストが実行されるようになりました。
また、今回作成したサンプルコードを下に貼っておきます。
https://github.com/kai-Bomb/ArticleSearcher