trigger: branches: include: - master - stable - release/stable/* paths: include: - '/' exclude: - .github/ # don't trigger the CI if only docs files are changed - doc/* - '**/*.md' pr: branches: include: - master - stable - release/stable/* paths: include: - '/' exclude: - .github/ # don't trigger the CI if only docs files are changed - doc/* - '**/*.md' variables: # Path where packages (nuget or app packages) will be copied to. PackageOutputPath: $(Build.ArtifactStagingDirectory) # For Application.Building.Light optimizations IsLightBuild: $[eq(variables['Build.Reason'], 'PullRequest')] IsCanaryBranch: $[startsWith(variables['Build.SourceBranch'], 'refs/heads/canaries/')] IsReleaseBranch: $[or(eq(variables['Build.SourceBranch'], 'refs/heads/master'), startsWith(variables['Build.SourceBranch'], 'refs/heads/feature/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'))] ANDROID_NDK_HOME: C:\Microsoft\AndroidNDK64\android-ndk-r16b ANDROID_NDK_PATH: C:\Microsoft\AndroidNDK64\android-ndk-r16b AndroidNdkDirectory: C:\Microsoft\AndroidNDK64\android-ndk-r16b jobs: - job: Windows # Build UWP/Android/NuGet timeoutInMinutes: 90 strategy: maxParallel: 4 matrix: UWP: ApplicationPlatform: UWP_x64 ArtifactName: UWP DisableNet6MobileTargets: true Android: ApplicationPlatform: Android ArtifactName: Android DisableNet6MobileTargets: true Packages: ApplicationPlatform: Packages ArtifactName: Packages GeneratePackageOnBuild: true Packages_WinUI: ApplicationPlatform: Packages ArtifactName: Packages UseWinUI: true GeneratePackageOnBuild: true pool: vmImage: windows-2022 steps: - template: build/gitversion.yml - template: build/dotnet-install-windows.yml # This SDK version is needed as long as `uap10.0` will be supported in Uno.Core - powershell: ./build/Install-WindowsSdkISO.ps1 18362 displayName: Install Windows SDK 18362 - template: build/stage-build.yml - job: MacOS # Build iOS/macOS timeoutInMinutes: 90 strategy: maxParallel: 2 matrix: iOS: ApplicationPlatform: iPhone ArtifactName: iOS DisableNet6MobileTargets: true macOS: ApplicationPlatform: macOS ArtifactName: macOS DisableNet6MobileTargets: true pool: vmImage: macOS-10.15 variables: - name: SkipUnknownFrameworks value: true # Used by TargetFrameworks.Filtering package - group: unoplatform.apple.ios.appstore.distribution steps: - task: InstallAppleCertificate@2 displayName: Install Certificate inputs: certSecureFile: UnoPlatform-Apple-Distribution.p12 certPwd: $(appleappstorecertificatepassword) keychain: temp deleteCert: true - task: InstallAppleProvisioningProfile@1 displayName: 'Install Apple Provisioning Profile' inputs: provisioningProfileLocation: 'secureFiles' provProfileSecureFile: 'Uno_Themes.mobileprovision' - template: build/gitversion.yml - template: build/dotnet-install-macos.yml - template: build/stage-build.yml - job: Linux pool: vmImage: 'ubuntu-18.04' container: unoplatform/wasm-build:2.2 variables: ArtifactName: WASM SkipUnknownFrameworks: True steps: - template: build/gitversion.yml - template: build/stage-build-wasm.yml