Skip to main content

Xamarin アプリケーションのビルドとテスト

GitHub Actionsで継続的インテグレーション (CI) ワークフローを作成し、Xamarin アプリケーションをビルドしてテストする方法について説明します。

はじめに

このガイドでは、Xamarin プロジェクトの継続的インテグレーション (CI) を実行するワークフローを作成する方法について説明します。 作成するワークフローによって、プルリクエストに対するコミットがデフォルトブランチに対してビルドあるいはテストの失敗を引き起こしたことを見ることができるようになります。このアプローチは、コードが常に健全であることを保証するための役に立ちます。

GitHub Actionsホスト型 macOS ランナーで使用可能な Xamarin SDK バージョンの完全な一覧については、GitHub Actions Runner Images リポジトリで使用する macOS のバージョンの README ファイルを参照してください。

前提条件

Xamarin、.NET Core SDK、YAML、ワークフロー構成オプション、およびワークフロー ファイルの作成方法に関する基本的な理解を持っていることをお勧めします。 詳細については、次を参照してください。

このガイドの例を使用するには、 GitHub.comにリポジトリが必要です。 macOS ランナーは、GHE.com のサブドメイン (octocorp.ghe.com など) では利用できません。

Xamarin.iOS アプリのビルド

次の例では、既定の Xamarin SDK バージョンを変更し、Xamarin.iOS アプリケーションをビルドする方法を示します。

name: Build Xamarin.iOS app

on: [push]

jobs:
  build:

    runs-on: macos-latest

    steps:
    - uses: actions/checkout@v6
    - name: Set default Xamarin SDK versions
      run: |
        $VM_ASSETS/select-xamarin-sdk-v2.sh --mono=6.12 --ios=14.10

    - name: Set default Xcode 12.3
      run: |
        XCODE_ROOT=/Applications/Xcode_12.3.0.app
        echo "MD_APPLE_SDK_ROOT=$XCODE_ROOT" >> $GITHUB_ENV
        sudo xcode-select -s $XCODE_ROOT

    - name: Setup .NET Core SDK 5.0.x
      uses: actions/setup-dotnet@v4
      with:
        dotnet-version: '5.0.x'

    - name: Install dependencies
      run: nuget restore <sln_file_path>

    - name: Build
      run: msbuild <csproj_file_path> /p:Configuration=Debug /p:Platform=iPhoneSimulator /t:Rebuild

Xamarin.Android アプリの構築

次の例では、Xamarin SDK の既定のバージョンを変更し、Xamarin.Android アプリケーションをビルドする方法を示します。

name: Build Xamarin.Android app

on: [push]

jobs:
  build:

    runs-on: macos-latest

    steps:
    - uses: actions/checkout@v6
    - name: Set default Xamarin SDK versions
      run: |
        $VM_ASSETS/select-xamarin-sdk-v2.sh --mono=6.10 --android=10.2

    - name: Setup .NET Core SDK 5.0.x
      uses: actions/setup-dotnet@v4
      with:
        dotnet-version: '5.0.x'

    - name: Install dependencies
      run: nuget restore <sln_file_path>

    - name: Build
      run: msbuild <csproj_file_path> /t:PackageForAndroid /p:Configuration=Debug

.NET バージョンの指定

GitHub ホストランナーにプレインストールされているバージョンの .NET Core SDK を使用するには、setup-dotnet アクションを使用します。 このアクションは、各ランナーのツール キャッシュから特定のバージョンの.NETを検索し、必要なバイナリを PATH に追加します。 これらの変更は、作業の残りの部分で維持されます。

setup-dotnetアクションは、GitHub Actionsで.NETを使用する場合に推奨される方法です。これは、異なるランナーと異なるバージョンの.NET間で一貫した動作が保証されるためです。 セルフホステッド ランナーを使用している場合は、.NETをインストールし、PATH に追加する必要があります。 詳細については、「setup-dotnet アクション」を参照してください。