Note: GitHub Actions was available for GitHub Enterprise Server 2.22 as a limited beta. The beta has ended. GitHub Actions is now generally available in GitHub Enterprise Server 3.0 or later. For more information, see the GitHub Enterprise Server 3.0 release notes.
Note: GitHub-hosted runners are not currently supported on GitHub Enterprise Server. You can see more information about planned future support on the GitHub public roadmap.
This guide shows you how to create a workflow that performs continuous integration (CI) for your Xamarin project. The workflow you create will allow you to see when commits to a pull request cause build or test failures against your default branch; this approach can help ensure that your code is always healthy.
For a full list of available Xamarin SDK versions on the GitHub Actions-hosted macOS runners, see the documentation:
Note: The macOS 11 virtual environment is currently provided as a private preview only. Any users or organizations that are already using this runner can continue using it, but we're not accepting any further users or organizations at this time. The
macos-latest YAML workflow label still uses the macOS 10.15 virtual environment.
We recommend that you have a basic understanding of Xamarin, .NET Core SDK, YAML, workflow configuration options, and how to create a workflow file. For more information, see:
The example below demonstrates how to change the default Xamarin SDK versions and build a Xamarin.iOS application.
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
The example below demonstrates how to change default Xamarin SDK versions and build a Xamarin.Android application.
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
To use a preinstalled version of the .NET Core SDK on a GitHub-hosted runner, use the
setup-dotnet action. This action finds a specific version of .NET from the tools cache on each runner, and adds the necessary binaries to
PATH. These changes will persist for the remainder of the job.
setup-dotnet action is the recommended way of using .NET with GitHub Actions, because it ensures consistent behavior across different runners and different versions of .NET. If you are using a self-hosted runner, you must install .NET and add it to
PATH. For more information, see the