diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index a70fb055cdf..d10ef3d8870 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -21,7 +21,7 @@ ] }, "microsoft.dotnet.xharness.cli": { - "version": "1.0.0-prerelease.22124.1", + "version": "1.0.0-prerelease.22204.2", "commands": [ "xharness" ] diff --git a/cake/UtilsManaged.cake b/cake/UtilsManaged.cake index f6f069c862c..474ad5f01d2 100644 --- a/cake/UtilsManaged.cake +++ b/cake/UtilsManaged.cake @@ -308,11 +308,6 @@ async Task DownloadPackageAsync(string id, DirectoryPath outputDirectory) Information($"Downloading '{currentId}' version '{currentVersion}'..."); - if (currentId == "_nativeassets.maccatalyst") { - Warning($"Skipping '{currentId}' because we do not yet have this package working..."); - return; - } - var root = await comparer.ExtractCachedPackageAsync(currentId, currentVersion); var toolsDir = $"{root}/tools/"; if (DirectoryExists(toolsDir)) { diff --git a/scripts/azure-pipelines-tests.yml b/scripts/azure-pipelines-tests.yml index 3265a46ab06..051d82d2ea0 100644 --- a/scripts/azure-pipelines-tests.yml +++ b/scripts/azure-pipelines-tests.yml @@ -16,7 +16,7 @@ parameters: type: object default: name: Azure Pipelines - vmImage: macOS-10.15 + vmImage: macos-11 - name: VM_IMAGE_LINUX type: object default: @@ -44,5 +44,8 @@ stages: isBuildPipeline: false buildExternals: ${{ parameters.buildExternals }} VM_IMAGE_WINDOWS: ${{ parameters.VM_IMAGE_WINDOWS }} + VM_IMAGE_WINDOWS_NATIVE: ${{ parameters.VM_IMAGE_WINDOWS }} VM_IMAGE_MAC: ${{ parameters.VM_IMAGE_MAC }} + VM_IMAGE_MAC_NATIVE: ${{ parameters.VM_IMAGE_MAC }} VM_IMAGE_LINUX: ${{ parameters.VM_IMAGE_LINUX }} + VM_IMAGE_LINUX_NATIVE: ${{ parameters.VM_IMAGE_LINUX }} diff --git a/scripts/azure-pipelines-variables.yml b/scripts/azure-pipelines-variables.yml index 4a9e5ab0455..7bc48b491ee 100644 --- a/scripts/azure-pipelines-variables.yml +++ b/scripts/azure-pipelines-variables.yml @@ -10,11 +10,12 @@ variables: BUILD_NUMBER: $[counter(format('_{0}_{1}_{2}__', variables['SKIASHARP_VERSION'], variables['Build.SourceBranch'], variables['PREVIEW_LABEL']), 1)] TIZEN_LINUX_PACKAGES: libxcb-xfixes0 libxcb-render-util0 libwebkitgtk-1.0-0 libxcb-image0 acl libsdl1.2debian libv4l-0 libxcb-randr0 libxcb-shape0 libxcb-icccm4 libsm6 gettext rpm2cpio cpio bridge-utils openvpn MANAGED_LINUX_PACKAGES: ttf-ancient-fonts ninja-build - MONO_VERSION_MACOS: '6_12_7' + MONO_VERSION_MACOS: '6_12_13' MONO_VERSION_LINUX: '' - XCODE_VERSION: 12.4 - DOTNET_VERSION_PREVIOUS: 3.1.416 - DOTNET_VERSION: 5.0.405 + XCODE_VERSION: 13.2.1 + XCODE_VERSION_NATIVE: 13.2.1 + DOTNET_VERSION_PREVIOUS: 3.1.417 + DOTNET_VERSION: 5.0.406 DOTNET_VERSION_PREVIEW: '6.0.200-rtm.22107.3' DOTNET_WORKLOAD_SOURCE: 'https://aka.ms/dotnet/maui/6.0.200/preview.14.json' CONFIGURATION: 'Release' diff --git a/scripts/azure-pipelines.yml b/scripts/azure-pipelines.yml index d84bb40ca23..dfa965324df 100644 --- a/scripts/azure-pipelines.yml +++ b/scripts/azure-pipelines.yml @@ -22,7 +22,7 @@ parameters: type: object default: name: Azure Pipelines - vmImage: macOS-10.15 + vmImage: macos-11 - name: VM_IMAGE_LINUX type: object default: @@ -46,5 +46,8 @@ stages: isBuildPipeline: true buildExternals: ${{ parameters.buildExternals }} VM_IMAGE_WINDOWS: ${{ parameters.VM_IMAGE_WINDOWS }} + VM_IMAGE_WINDOWS_NATIVE: ${{ parameters.VM_IMAGE_WINDOWS }} VM_IMAGE_MAC: ${{ parameters.VM_IMAGE_MAC }} + VM_IMAGE_MAC_NATIVE: ${{ parameters.VM_IMAGE_MAC }} VM_IMAGE_LINUX: ${{ parameters.VM_IMAGE_LINUX }} + VM_IMAGE_LINUX_NATIVE: ${{ parameters.VM_IMAGE_LINUX }} diff --git a/scripts/azure-templates-build.yml b/scripts/azure-templates-build.yml index 7463a5bfd42..13ea6985c6c 100644 --- a/scripts/azure-templates-build.yml +++ b/scripts/azure-templates-build.yml @@ -54,14 +54,14 @@ jobs: sudo apt update sudo apt install -y ${{ parameters.packages }} displayName: Install additional package dependencies - condition: ne('${{ parameters.packages }}', '') + condition: and(succeeded(), ne('${{ parameters.packages }}', '')) # make sure mono/msbuild is the correct version - ${{ if and(ne(variables['MONO_VERSION_LINUX'], ''), eq(parameters.docker, ''), endsWith(parameters.name, '_linux')) }}: - bash: ./scripts/install-mono.sh $(MONO_VERSION_LINUX) displayName: Install Mono and MSBuild - ${{ if endsWith(parameters.name, '_macos') }}: - - bash: sudo $(Agent.HomeDirectory)/scripts/select-xamarin-sdk.sh $(MONO_VERSION_MACOS) + - bash: sudo ./scripts/select-xamarin.sh $(MONO_VERSION_MACOS) displayName: Switch to the latest Xamarin SDK # install extra bits for the native builds @@ -114,46 +114,58 @@ jobs: displayName: Install Android API 31 (v12) # install the bits needed for .NET - ${{ if eq(parameters.installDotNet, 'true') }}: + - ${{ if endsWith(parameters.name, '_macos') }}: + - pwsh: Remove-Item "$env:AGENT_TOOLSDIRECTORY/dotnet" -Recurse -Force -ErrorAction SilentlyContinue + displayName: Cleanup existing versions of .NET Core - task: UseDotNet@2 inputs: packageType: 'sdk' version: $(DOTNET_VERSION_PREVIOUS) - performMultiLevelLookup: true displayName: Install the previous version of .NET Core - task: UseDotNet@2 inputs: packageType: 'sdk' version: $(DOTNET_VERSION) - performMultiLevelLookup: true displayName: Install the correct version of .NET Core # install the bits needed for .NET 6 builds - pwsh: .\scripts\install-dotnet.ps1 -Version $env:DOTNET_VERSION_PREVIEW -InstallDir "$env:AGENT_TOOLSDIRECTORY/dotnet" displayName: Install the preview version of .NET Core - condition: ne(variables.DOTNET_VERSION_PREVIEW, '') + condition: and(succeeded(), ne(variables.DOTNET_VERSION_PREVIEW, '')) + # display dotnet info + - pwsh: dotnet --info + displayName: Display all the .NET information + # install VS - ${{ if endsWith(parameters.name, '_windows') }}: - ${{ if eq(parameters.installPreviewVs, 'true') }}: - pwsh: .\scripts\install-vs.ps1 displayName: Install Visual Studio + # install workloads - ${{ if not(endsWith(parameters.name, '_linux')) }}: - pwsh: .\scripts\install-dotnet-workloads.ps1 -InstallDir "$env:AGENT_TOOLSDIRECTORY/dotnet" -SourceUrl "$env:DOTNET_WORKLOAD_SOURCE" -IsPreview $true - condition: ne(variables.DOTNET_VERSION_PREVIEW, '') + condition: and(succeeded(), ne(variables.DOTNET_VERSION_PREVIEW, '')) displayName: Install the preview .NET Core workloads - pwsh: .\scripts\install-dotnet-workloads.ps1 -InstallDir "$env:AGENT_TOOLSDIRECTORY/dotnet" -SourceUrl "$env:DOTNET_WORKLOAD_SOURCE" -IsPreview $false - condition: eq(variables.DOTNET_VERSION_PREVIEW, '') + condition: and(succeeded(), eq(variables.DOTNET_VERSION_PREVIEW, '')) displayName: Install the .NET Core workloads - # display dotnet info - - pwsh: dotnet --info - displayName: Display all the .NET information # select the correct/latest version of Visual Studio - ${{ if endsWith(parameters.name, '_windows') }}: - pwsh: .\scripts\select-vs.ps1 displayName: Select Visual Studio + # install nuget + - ${{ if endsWith(parameters.name, '_windows') }}: + - pwsh: .\scripts\install-nuget.ps1 + displayName: Install NuGet + # install the mac tools - ${{ if endsWith(parameters.name, '_macos') }}: - - bash: echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'/Applications/Xcode_$(XCODE_VERSION).app;sudo xcode-select --switch /Applications/Xcode_$(XCODE_VERSION).app/Contents/Developer - displayName: Switch to the latest Xcode + - ${{ if startsWith(parameters.name, 'native_') }}: + - bash: sudo ./scripts/select-xcode.sh $(XCODE_VERSION_NATIVE) + displayName: Switch to the latest Xcode + - ${{ if not(startsWith(parameters.name, 'native_')) }}: + - bash: sudo ./scripts/select-xcode.sh $(XCODE_VERSION) + displayName: Switch to the latest Xcode # install the linux tools - ${{ if and(eq(parameters.installEmsdk, 'true'), endsWith(parameters.name, '_linux')) }}: @@ -179,10 +191,6 @@ jobs: - pwsh: dotnet tool install -g ${{ tool }} displayName: Install ${{ tool }} - # install nuget - - pwsh: .\scripts\install-nuget.ps1 - displayName: Install NuGet - # download artifacts - template: azure-templates-download-artifacts.yml parameters: diff --git a/scripts/azure-templates-github-status.yml b/scripts/azure-templates-github-status.yml index b3905f223be..82ee6214658 100644 --- a/scripts/azure-templates-github-status.yml +++ b/scripts/azure-templates-github-status.yml @@ -26,7 +26,7 @@ steps: curl -v ` -X POST ` -H "Accept: application/vnd.github.v3+json" ` - -H "Authorization: token $(Github.Token)" ` + -H "Authorization: token $(Github.Token.Status)" ` https://api.github.com/repos/$env:BUILD_REPOSITORY_ID/statuses/$env:SYSTEM_PULLREQUEST_SOURCECOMMITID ` -d @temp-test.json displayName: ${{ parameters.displayName }} diff --git a/scripts/azure-templates-stages.yml b/scripts/azure-templates-stages.yml index aa9a41d8822..10430b8b466 100644 --- a/scripts/azure-templates-stages.yml +++ b/scripts/azure-templates-stages.yml @@ -2,8 +2,11 @@ parameters: isBuildPipeline: true buildExternals: 0 VM_IMAGE_WINDOWS: '' + VM_IMAGE_WINDOWS_NATIVE: '' VM_IMAGE_MAC: '' + VM_IMAGE_MAC_NATIVE: '' VM_IMAGE_LINUX: '' + VM_IMAGE_LINUX_NATIVE: '' stages: - stage: prepare @@ -36,7 +39,7 @@ stages: displayName: Android x86 buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_WINDOWS}} + vmImage: ${{ parameters.VM_IMAGE_WINDOWS_NATIVE }} target: externals-android additionalArgs: --buildarch=x86 installWindowsSdk: false @@ -47,7 +50,7 @@ stages: displayName: Android x64 buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_WINDOWS}} + vmImage: ${{ parameters.VM_IMAGE_WINDOWS_NATIVE }} target: externals-android additionalArgs: --buildarch=x64 installWindowsSdk: false @@ -58,7 +61,7 @@ stages: displayName: Android arm buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_WINDOWS}} + vmImage: ${{ parameters.VM_IMAGE_WINDOWS_NATIVE }} target: externals-android additionalArgs: --buildarch=arm installWindowsSdk: false @@ -69,7 +72,7 @@ stages: displayName: Android arm64 buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_WINDOWS}} + vmImage: ${{ parameters.VM_IMAGE_WINDOWS_NATIVE }} target: externals-android additionalArgs: --buildarch=arm64 installWindowsSdk: false @@ -80,7 +83,7 @@ stages: displayName: Tizen buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_WINDOWS}} + vmImage: ${{ parameters.VM_IMAGE_WINDOWS_NATIVE }} target: externals-tizen installWindowsSdk: false artifactName: native @@ -90,7 +93,7 @@ stages: displayName: ANGLE x86 buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_WINDOWS}} + vmImage: ${{ parameters.VM_IMAGE_WINDOWS_NATIVE }} target: ANGLE additionalArgs: -Script .\native\uwp\build.cake --buildarch=x86 artifactName: native @@ -100,7 +103,7 @@ stages: displayName: ANGLE x64 buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_WINDOWS}} + vmImage: ${{ parameters.VM_IMAGE_WINDOWS_NATIVE }} target: ANGLE additionalArgs: -Script .\native\uwp\build.cake --buildarch=x64 artifactName: native @@ -110,7 +113,7 @@ stages: displayName: ANGLE arm buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_WINDOWS}} + vmImage: ${{ parameters.VM_IMAGE_WINDOWS_NATIVE }} target: ANGLE additionalArgs: -Script .\native\uwp\build.cake --buildarch=arm artifactName: native @@ -120,7 +123,7 @@ stages: displayName: ANGLE arm64 buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_WINDOWS}} + vmImage: ${{ parameters.VM_IMAGE_WINDOWS_NATIVE }} target: ANGLE additionalArgs: -Script .\native\uwp\build.cake --buildarch=arm64 artifactName: native @@ -130,7 +133,7 @@ stages: displayName: UWP x86 buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_WINDOWS}} + vmImage: ${{ parameters.VM_IMAGE_WINDOWS_NATIVE }} target: externals-uwp additionalArgs: --buildarch=x86 --skipAngle=true artifactName: native @@ -139,7 +142,7 @@ stages: name: native_uwp_x64_windows displayName: UWP x64 buildExternals: ${{ parameters.buildExternals }} - vmImage: ${{ parameters.VM_IMAGE_WINDOWS}} + vmImage: ${{ parameters.VM_IMAGE_WINDOWS_NATIVE }} target: externals-uwp additionalArgs: --buildarch=x64 --skipAngle=true artifactName: native @@ -149,7 +152,7 @@ stages: displayName: UWP arm buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_WINDOWS}} + vmImage: ${{ parameters.VM_IMAGE_WINDOWS_NATIVE }} target: externals-uwp additionalArgs: --buildarch=arm --skipAngle=true artifactName: native @@ -159,7 +162,7 @@ stages: displayName: UWP arm64 buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_WINDOWS}} + vmImage: ${{ parameters.VM_IMAGE_WINDOWS_NATIVE }} target: externals-uwp additionalArgs: --buildarch=arm64 --skipAngle=true artifactName: native @@ -169,7 +172,7 @@ stages: displayName: Win32 x86 buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_WINDOWS}} + vmImage: ${{ parameters.VM_IMAGE_WINDOWS_NATIVE }} target: externals-windows additionalArgs: --buildarch=x86 artifactName: native @@ -179,7 +182,7 @@ stages: displayName: Win32 x64 buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_WINDOWS}} + vmImage: ${{ parameters.VM_IMAGE_WINDOWS_NATIVE }} target: externals-windows additionalArgs: --buildarch=x64 artifactName: native @@ -189,7 +192,7 @@ stages: displayName: Win32 arm64 buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_WINDOWS}} + vmImage: ${{ parameters.VM_IMAGE_WINDOWS_NATIVE }} target: externals-windows additionalArgs: --buildarch=arm64 artifactName: native @@ -199,7 +202,7 @@ stages: displayName: Nano Server x64 buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_WINDOWS}} + vmImage: ${{ parameters.VM_IMAGE_WINDOWS_NATIVE }} target: externals-nanoserver additionalArgs: --buildarch=x64 artifactName: native @@ -215,7 +218,7 @@ stages: displayName: Android x86 buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_MAC }} + vmImage: ${{ parameters.VM_IMAGE_MAC_NATIVE }} target: externals-android additionalArgs: --buildarch=x86 - template: azure-templates-bootstrapper.yml # Build Native Android|x64 (macOS) @@ -224,7 +227,7 @@ stages: displayName: Android x64 buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_MAC }} + vmImage: ${{ parameters.VM_IMAGE_MAC_NATIVE }} target: externals-android additionalArgs: --buildarch=x64 - template: azure-templates-bootstrapper.yml # Build Native Android|arm (macOS) @@ -233,7 +236,7 @@ stages: displayName: Android arm buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_MAC }} + vmImage: ${{ parameters.VM_IMAGE_MAC_NATIVE }} target: externals-android additionalArgs: --buildarch=arm - template: azure-templates-bootstrapper.yml # Build Native Android|arm64 (macOS) @@ -242,7 +245,7 @@ stages: displayName: Android arm64 buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_MAC }} + vmImage: ${{ parameters.VM_IMAGE_MAC_NATIVE }} target: externals-android additionalArgs: --buildarch=arm64 - template: azure-templates-bootstrapper.yml # Build Native iOS (macOS) @@ -251,7 +254,7 @@ stages: displayName: iOS buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_MAC }} + vmImage: ${{ parameters.VM_IMAGE_MAC_NATIVE }} target: externals-ios artifactName: native - template: azure-templates-bootstrapper.yml # Build Native Mac Catalyst (macOS) @@ -260,7 +263,7 @@ stages: displayName: Mac Catalyst buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_MAC }} + vmImage: ${{ parameters.VM_IMAGE_MAC_NATIVE }} target: externals-maccatalyst artifactName: native - template: azure-templates-bootstrapper.yml # Build Native macOS (macOS) @@ -269,7 +272,7 @@ stages: displayName: macOS buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_MAC }} + vmImage: ${{ parameters.VM_IMAGE_MAC_NATIVE }} target: externals-macos artifactName: native - template: azure-templates-bootstrapper.yml # Build Native tvOS (macOS) @@ -278,7 +281,7 @@ stages: displayName: tvOS buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_MAC }} + vmImage: ${{ parameters.VM_IMAGE_MAC_NATIVE }} target: externals-tvos artifactName: native - template: azure-templates-bootstrapper.yml # Build Native watchOS (macOS) @@ -287,7 +290,7 @@ stages: displayName: watchOS buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_MAC }} + vmImage: ${{ parameters.VM_IMAGE_MAC_NATIVE }} target: externals-watchos artifactName: native - template: azure-templates-bootstrapper.yml # Build Native Tizen (macOS) @@ -296,7 +299,7 @@ stages: displayName: Tizen buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_MAC }} + vmImage: ${{ parameters.VM_IMAGE_MAC_NATIVE }} target: externals-tizen condition: false # TODO: TIZEN INSTALL BUGS @@ -310,7 +313,7 @@ stages: artifactName: native buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_LINUX }} + vmImage: ${{ parameters.VM_IMAGE_LINUX_NATIVE }} builds: - name: '' - name: nodeps @@ -336,7 +339,7 @@ stages: displayName: Tizen buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_LINUX }} + vmImage: ${{ parameters.VM_IMAGE_LINUX_NATIVE }} packages: $(TIZEN_LINUX_PACKAGES) target: externals-tizen @@ -349,7 +352,7 @@ stages: parameters: buildExternals: ${{ parameters.buildExternals }} isBuildPipeline: ${{ parameters.isBuildPipeline }} - vmImage: ${{ parameters.VM_IMAGE_LINUX }} + vmImage: ${{ parameters.VM_IMAGE_LINUX_NATIVE }} artifactName: native emscripten: - 2.0.5 diff --git a/scripts/azure-templates-variables.yml b/scripts/azure-templates-variables.yml index 9a53bce84b6..d2409ef806a 100644 --- a/scripts/azure-templates-variables.yml +++ b/scripts/azure-templates-variables.yml @@ -32,7 +32,7 @@ steps: } else { Write-Host "Not a PR build." } - condition: eq(variables['Build.Reason'], 'ResourceTrigger') + condition: or(eq(variables['Build.Reason'], 'ResourceTrigger'), eq(variables['Build.Reason'], 'Manual')) displayName: Update the PR variables for downstream builds - pwsh: | @@ -58,7 +58,7 @@ steps: $buildnumber = $match.Groups[2].Value Write-Host "Build number: $buildnumber" Write-Host "##vso[task.setvariable variable=BUILD_NUMBER]$buildnumber" - condition: eq(variables['Build.Reason'], 'ResourceTrigger') + condition: or(eq(variables['Build.Reason'], 'ResourceTrigger'), eq(variables['Build.Reason'], 'Manual')) displayName: Override the preview label and build number if this is a secondary build - pwsh: | diff --git a/scripts/install-dotnet-workloads.ps1 b/scripts/install-dotnet-workloads.ps1 index df505433977..48ec1de6916 100644 --- a/scripts/install-dotnet-workloads.ps1 +++ b/scripts/install-dotnet-workloads.ps1 @@ -1,13 +1,11 @@ Param( - [string] $InstallDir, - [string] $SourceUrl, - [boolean] $IsPreview = $true + [string] $SourceUrl, + [string] $InstallDir, + [boolean] $IsPreview = $true ) $ErrorActionPreference = 'Stop' -$env:DOTNET_ROOT="$InstallDir" - $previewFeed = 'https://api.nuget.org/v3/index.json' $previewRuntime = 'https://api.nuget.org/v3/index.json' $previewEmscripten = 'https://api.nuget.org/v3/index.json' diff --git a/scripts/install-dotnet.ps1 b/scripts/install-dotnet.ps1 index fd2697a0eb4..50ffbfe9040 100644 --- a/scripts/install-dotnet.ps1 +++ b/scripts/install-dotnet.ps1 @@ -1,32 +1,42 @@ Param( - [string] $Version, - [string] $InstallDir, - [string] $FeedUrl = "https://dotnetbuilds.blob.core.windows.net/public" + [string] $Version, + [string] $InstallDir, + [string] $FeedUrl = "https://dotnetbuilds.blob.core.windows.net/public" ) $ErrorActionPreference = 'Stop' -if ($IsMacOS -or $IsLinux) { - $url = "https://dot.net/v1/dotnet-install.sh" +$dotnetDll = Join-Path "$InstallDir" "sdk" "$Version" "dotnet.dll" +if (Test-Path $dotnetDll) { + Write-Host ".NET already installed." } else { - $url = "https://dot.net/v1/dotnet-install.ps1" -} + if ($IsMacOS -or $IsLinux) { + $url = "https://dot.net/v1/dotnet-install.sh" + } else { + $url = "https://dot.net/v1/dotnet-install.ps1" + } -Write-Host "Downloading .NET Installer..." -Invoke-WebRequest ` - -Uri "$url" ` - -OutFile (Split-Path $url -Leaf) + Write-Host "Downloading .NET Installer..." + Invoke-WebRequest ` + -Uri "$url" ` + -OutFile (Split-Path $url -Leaf) -Write-Host "Installing .NET $Version..." -if ($IsMacOS) { - & sh dotnet-install.sh --version "$Version" --install-dir "$InstallDir" --azure-feed "$FeedUrl" --verbose -} elseif ($IsLinux) { - & bash dotnet-install.sh --version "$Version" --install-dir "$InstallDir" --azure-feed "$FeedUrl" --verbose -} else { - .\dotnet-install.ps1 -Version "$Version" -InstallDir "$InstallDir" -AzureFeed "$FeedUrl" -Verbose + Write-Host "Installing .NET $Version..." + if ($IsMacOS) { + & sh dotnet-install.sh --version "$Version" --install-dir "$InstallDir" --azure-feed "$FeedUrl" --verbose + } elseif ($IsLinux) { + & bash dotnet-install.sh --version "$Version" --install-dir "$InstallDir" --azure-feed "$FeedUrl" --verbose + } else { + .\dotnet-install.ps1 -Version "$Version" -InstallDir "$InstallDir" -AzureFeed "$FeedUrl" -Verbose + } +} + +if (-not $env:PATH.Contains($InstallDir)) { + $env:PATH = "$InstallDir" + [IO.Path]::PathSeparator + "$env:PATH" + Write-Host "##vso[task.setvariable variable=PATH;]$env:PATH" } -Write-Host "Installed .NET Versions:" -& dotnet --list-sdks +Write-Host "Checking all dotnet info..." +& dotnet --info exit $LASTEXITCODE diff --git a/scripts/install-nuget.ps1 b/scripts/install-nuget.ps1 index 8252bd1dfc8..54c629b4169 100644 --- a/scripts/install-nuget.ps1 +++ b/scripts/install-nuget.ps1 @@ -22,7 +22,9 @@ New-Item -ItemType Directory -Force -Path $destDir | Out-Null Write-Host "Downloading NuGet: $uri..." .\scripts\download-file.ps1 -Uri $uri -OutFile $exe -Write-Host "##vso[task.setvariable variable=PATH;]$destDir;$env:PATH"; -$env:PATH = "$destDir;$env:PATH" +if (-not $env:PATH.Contains($destDir)) { + $env:PATH = "$destDir" + [IO.Path]::PathSeparator + "$env:PATH" + Write-Host "##vso[task.setvariable variable=PATH;]$env:PATH" +} exit $LASTEXITCODE diff --git a/scripts/install-openjdk.ps1 b/scripts/install-openjdk.ps1 index ca8e9028e68..227e9c7030d 100644 --- a/scripts/install-openjdk.ps1 +++ b/scripts/install-openjdk.ps1 @@ -56,8 +56,10 @@ $env:JAVA_HOME = "$java_home" # make sure that JAVA_HOME/bin is in the PATH $javaBin = Join-Path "$java_home" "bin" -Write-Host "##vso[task.setvariable variable=PATH;]$javaBin;$env:PATH"; -$env:PATH = "$env:JAVA_HOME\bin;$env:PATH" +if (-not $env:PATH.Contains($javaBin)) { + $env:PATH = "$javaBin" + [IO.Path]::PathSeparator + "$env:PATH" + Write-Host "##vso[task.setvariable variable=PATH;]$env:PATH" +} java -version diff --git a/scripts/install-python.ps1 b/scripts/install-python.ps1 index da23384fe9f..029a0869c7e 100644 --- a/scripts/install-python.ps1 +++ b/scripts/install-python.ps1 @@ -59,7 +59,11 @@ Write-Host "Extraction complete." Write-Host "Installing Python..." try { Push-Location "$tempDir" - .\setup.ps1 + if ($IsMacOS -or $IsLinux) { + ./setup.sh + } else { + .\setup.ps1 + } } finally { Pop-Location } diff --git a/scripts/select-xamarin.sh b/scripts/select-xamarin.sh new file mode 100755 index 00000000000..bf30945933c --- /dev/null +++ b/scripts/select-xamarin.sh @@ -0,0 +1,21 @@ +#!/bin/bash -e -o pipefail + +MONO_VERSION=$1 + +echo "Mono versions:" +ls -ld /Library/Frameworks/Mono.framework/Versions/* + +echo "Xamarin.iOS versions:" +ls -ld /Library/Frameworks/Xamarin.iOS.framework/Versions/* + +echo "Xamarin.Android versions:" +ls -ld /Library/Frameworks/Xamarin.Android.framework/Versions/* + +echo "Xamarin.Mac versions:" +ls -ld /Library/Frameworks/Xamarin.Mac.framework/Versions/* + +if [ -f "$AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh" ]; then + $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh $MONO_VERSION +else + echo "Skipping the switch because the script did not exist." +fi diff --git a/scripts/select-xcode.sh b/scripts/select-xcode.sh new file mode 100755 index 00000000000..28dc4ccaf27 --- /dev/null +++ b/scripts/select-xcode.sh @@ -0,0 +1,10 @@ +#!/bin/bash -e -o pipefail + +XCODE_VERSION=$1 + +echo "Xcode versions:" +ls -ld /Applications/Xcode*.app + +echo "##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]/Applications/Xcode_$XCODE_VERSION.app" + +xcode-select --switch "/Applications/Xcode_$XCODE_VERSION.app/Contents/Developer"