Skip to main content

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

GitHub Actions で継続的インテグレーション (CI) ワークフローを作成して、Xamarin アプリケーションをビルドおよびテストできます。

はじめに

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

GitHub Actions ホスト型 macOS ランナーで利用できる Xamarin SDK バージョンの完全一覧については、次のドキュメントをご覧ください。

現在、macos-latest YAML ワークフロー ラベルでは、macOS 10.15 ランナー イメージが使われています。

前提条件

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

Xamarin.iOS アプリのビルド

以下は、デフォルトの Xamarin SDK バージョンを変更して Xamarin.iOS アプリケーションをビルドする方法の例です。

name: Build Xamarin.iOS app

on: [push]

jobs:
  build:

    runs-on: macos-latest

    steps:
    - uses: actions/checkout@v2
    - 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@v1
      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@v2
    - 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@v1
      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 アクションを使用すると、異なるランナーおよび .NET の異なるバージョンの間で一貫した動作が保証されるため、GitHub Actions で NET を使用する場合の推奨される方法です。 セルフホステッド ランナーを使用している場合は、.NET をインストールし、それを PATH に追加する必要があります。 詳細については、「setup-dotnet アクション」を参照してください。