name: MAUI on: workflow_dispatch: push: branches: - main paths: - 'src/MAUI/**/*' - '.github/workflows/main_build-maui.yml' env: TELERIK_LICENSE: ${{secrets.TELERIK_LICENSE_KEY}} PROJECT_PATH: "src/MAUI/MauiDemo.csproj" NUGETCONFIG_PATH: "src/NuGet.Config" DOTNET_VERSION: "10.0.x" MAC_DOTNET_VERSION: "10.0.203" # Used to avoid Xcode and MAUI workload problems TFM_VERSION: "net10.0" XCODE_VERSION: '26.4' BUILD_CONFIG: "Debug" jobs: maui-windows: name: Windows Smoketest runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Setup .NET SDK uses: actions/setup-dotnet@v5 with: dotnet-version: ${{env.DOTNET_VERSION}} # Only needed for WinUI builds - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v3 - name: Install MAUI workloads run: dotnet workload install maui --source https://api.nuget.org/v3/index.json - name: Set Telerik NuGet Credentials run: dotnet nuget update source 'Telerik_v3_Feed' -s 'https://nuget.telerik.com/v3/index.json' -u 'api-key' -p "${{secrets.TELERIK_NUGET_KEY}}" --configfile ${{env.NUGETCONFIG_PATH}} --store-password-in-clear-text - name: Restore NuGet packages run: dotnet restore ${{env.PROJECT_PATH}} --configfile ${{env.NUGETCONFIG_PATH}} - name: Build Maui WinUI project run: dotnet build ${{env.PROJECT_PATH}} -c ${{env.BUILD_CONFIG}} -f "${{env.TFM_VERSION}}-windows10.0.22621.0" --no-restore maui-android: name: Android Smoketest runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Setup .NET SDK uses: actions/setup-dotnet@v5 with: dotnet-version: ${{env.DOTNET_VERSION}} - uses: actions/setup-java@v4 with: distribution: 'microsoft' java-version: '11' - name: Install MAUI workloads run: dotnet workload install maui --source https://api.nuget.org/v3/index.json - name: Set Telerik NuGet Credentials run: dotnet nuget update source 'Telerik_v3_Feed' -s 'https://nuget.telerik.com/v3/index.json' -u 'api-key' -p "${{secrets.TELERIK_NUGET_KEY}}" --configfile ${{env.NUGETCONFIG_PATH}} --store-password-in-clear-text - name: Restore NuGet packages run: dotnet restore ${{env.PROJECT_PATH}} --configfile ${{env.NUGETCONFIG_PATH}} - name: Build Maui Android project run: dotnet build ${{env.PROJECT_PATH}} -c ${{env.BUILD_CONFIG}} -f "${{env.TFM_VERSION}}-android" --no-restore maui-ios: name: iOS Smoketest runs-on: macos-26 steps: - name: Checkout uses: actions/checkout@v6 - uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: ${{env.XCODE_VERSION}} - name: Setup .NET SDK uses: actions/setup-dotnet@v5 with: dotnet-version: ${{env.MAC_DOTNET_VERSION}} - name: Install MAUI workloads run: dotnet workload install maui --source https://api.nuget.org/v3/index.json - name: Set Telerik NuGet Credentials run: dotnet nuget update source 'Telerik_v3_Feed' -s 'https://nuget.telerik.com/v3/index.json' -u 'api-key' -p "${{secrets.TELERIK_NUGET_KEY}}" --configfile ${{env.NUGETCONFIG_PATH}} --store-password-in-clear-text - name: Restore NuGet packages run: dotnet restore ${{env.PROJECT_PATH}} --configfile ${{env.NUGETCONFIG_PATH}} - name: Build MAUI iOS project run: dotnet build ${{env.PROJECT_PATH}} -c ${{env.BUILD_CONFIG}} -f "${{env.TFM_VERSION}}-ios" --no-restore -p:PublishTrimmed=True -p:MtouchLink=SdkOnly maui-macos: name: MacCatalyst Smoketest runs-on: macos-26 steps: - name: Checkout uses: actions/checkout@v6 - uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: ${{env.XCODE_VERSION}} - name: Setup .NET SDK uses: actions/setup-dotnet@v5 with: dotnet-version: ${{env.MAC_DOTNET_VERSION}} - name: Install MAUI workloads run: dotnet workload install maui --source https://api.nuget.org/v3/index.json - name: Set Telerik NuGet Credentials run: dotnet nuget update source 'Telerik_v3_Feed' -s 'https://nuget.telerik.com/v3/index.json' -u 'api-key' -p "${{secrets.TELERIK_NUGET_KEY}}" --configfile ${{env.NUGETCONFIG_PATH}} --store-password-in-clear-text - name: Restore NuGet packages run: dotnet restore ${{env.PROJECT_PATH}} --configfile ${{env.NUGETCONFIG_PATH}} - name: Build MAUI MacCatalyst project run: dotnet build ${{env.PROJECT_PATH}} -c ${{env.BUILD_CONFIG}} -f "${{env.TFM_VERSION}}-maccatalyst" --no-restore -p:PublishTrimmed=True -p:MtouchLink=SdkOnly