diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml index a3cce2ea12ed..a7dc48c12892 100644 --- a/.azure/pipelines/ci.yml +++ b/.azure/pipelines/ci.yml @@ -51,6 +51,8 @@ variables: /p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines) /p:DotNetArtifactsCategory=$(_DotNetArtifactsCategory) # Do not log most Windows steps in official builds; this is the slowest job. Site extensions step always logs. + - name: WindowsArm64LogArgs + value: -ExcludeCIBinaryLog - name: Windows64LogArgs value: -ExcludeCIBinaryLog - name: Windows86LogArgs @@ -59,12 +61,16 @@ variables: value: -ExcludeCIBinaryLog - name: WindowsInstallersLogArgs value: -ExcludeCIBinaryLog + - name: WindowsArm64InstallersLogArgs + value: -ExcludeCIBinaryLog - ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: - name: _BuildArgs value: '/p:SkipTestBuild=true' - name: _PublishArgs value: '' # Write binary logs for all main Windows build steps except the x86 one in public and PR builds. + - name: WindowsArm64LogArgs + value: /bl:artifacts/log/Release/Build.arm64.binlog - name: Windows64LogArgs value: /bl:artifacts/log/Release/Build.x64.binlog - name: Windows86LogArgs @@ -73,6 +79,8 @@ variables: value: /bl:artifacts/log/Release/Build.CodeSign.binlog - name: WindowsInstallersLogArgs value: /bl:artifacts/log/Release/Build.Installers.binlog + - name: WindowsArm64InstallersLogArgs + value: /bl:artifacts/log/Release/Build.Installers.Arm64.binlog - ${{ if ne(variables['System.TeamProject'], 'internal') }}: - name: _UseHelixOpenQueues value: 'true' @@ -263,18 +271,6 @@ stages: jobName: Windows_arm64_build jobDisplayName: "Build: Windows ARM64" agentOs: Windows - buildArgs: - -arch arm64 - -sign - -pack - -noBuildNodeJS - -noBuildJava - /p:DotNetSignType=$(_SignType) - /p:OnlyPackPlatformSpecificPackages=true - /p:AssetManifestFileName=aspnetcore-win-arm64.xml - $(_BuildArgs) - $(_PublishArgs) - $(_InternalRuntimeDownloadArgs) installNodeJs: false installJdk: false artifacts: @@ -286,6 +282,47 @@ stages: path: artifacts/packages/ - name: Windows_arm64_Installers path: artifacts/installers/ + steps: + - script: ./build.cmd + -ci + -arch arm64 + -sign + -pack + -noBuildJava + -noBuildNative + /p:DotNetSignType=$(_SignType) + /p:OnlyPackPlatformSpecificPackages=true + $(_BuildArgs) + $(_InternalRuntimeDownloadArgs) + $(WindowsArm64LogArgs) + displayName: Build ARM64 + + # Windows installers bundle for arm64 + - script: ./build.cmd + -ci + -noBuildRepoTasks + -arch arm64 + -sign + -buildInstallers + -noBuildNative + /p:DotNetSignType=$(_SignType) + /p:AssetManifestFileName=aspnetcore-win-arm64.xml + $(_BuildArgs) + $(_PublishArgs) + $(_InternalRuntimeDownloadArgs) + $(WindowsArm64InstallersLogArgs) + displayName: Build Arm64 Installers + + # A few files must also go to the VS package feed. + - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - task: NuGetCommand@2 + displayName: Push Visual Studio packages + inputs: + command: push + packagesToPush: 'artifacts/packages/**/VS.Redist.Common.AspNetCore.*.nupkg' + nuGetFeedType: external + publishFeedCredentials: 'DevDiv - VS package feed' + # Build MacOS - template: jobs/default-build.yml diff --git a/build.ps1 b/build.ps1 index 96e5cb7bf07a..0d82c3b2657b 100644 --- a/build.ps1 +++ b/build.ps1 @@ -296,12 +296,11 @@ if ($BuildNodeJS) { $dotnetBuildArguments += "/p:BuildNodeJS=true" } # Don't bother with two builds if just one will build everything. Ignore super-weird cases like # "-Projects ... -NoBuildJava -NoBuildManaged -NoBuildNodeJS". An empty `./build.ps1` command will build both # managed and native projects. -$performDesktopBuild = ($BuildInstallers -or $BuildNative) -and ` - -not $Architecture.StartsWith("arm", [System.StringComparison]::OrdinalIgnoreCase) +$performDesktopBuild = ($BuildInstallers -and $Architecture -ne "arm") -or ` + ($BuildNative -and -not $Architecture.StartsWith("arm", [System.StringComparison]::OrdinalIgnoreCase)) $performDotnetBuild = $BuildJava -or $BuildManaged -or $BuildNodeJS -or ` ($All -and -not ($NoBuildJava -and $NoBuildManaged -and $NoBuildNodeJS)) -or ` ($Projects -and -not ($BuildInstallers -or $specifiedBuildNative)) - $foundJdk = $false $javac = Get-Command javac -ErrorAction Ignore -CommandType Application $localJdkPath = "$PSScriptRoot\.tools\jdk\win-x64\" diff --git a/eng/Build.props b/eng/Build.props index f0cb8db0b8a0..497ba8f4f80a 100644 --- a/eng/Build.props +++ b/eng/Build.props @@ -50,7 +50,7 @@ - + @@ -64,6 +64,10 @@ + + @@ -77,6 +81,14 @@ + + + + + + + diff --git a/eng/targets/Wix.Common.props b/eng/targets/Wix.Common.props index e6b1337fcba0..9a29437eb2e5 100644 --- a/eng/targets/Wix.Common.props +++ b/eng/targets/Wix.Common.props @@ -3,8 +3,8 @@ 2.0 - 3.11 - 3.11.1 + 3.14 + 3.14.0-dotnet diff --git a/src/Installers/Windows/SharedFramework/Product.wxs b/src/Installers/Windows/SharedFramework/Product.wxs index 2a71da323a2a..3375094918c0 100644 --- a/src/Installers/Windows/SharedFramework/Product.wxs +++ b/src/Installers/Windows/SharedFramework/Product.wxs @@ -2,7 +2,7 @@ - + @@ -21,7 +21,7 @@ - + diff --git a/src/Installers/Windows/SharedFramework/SharedFramework.wixproj b/src/Installers/Windows/SharedFramework/SharedFramework.wixproj index edbb9f5bef01..6c87d7774704 100644 --- a/src/Installers/Windows/SharedFramework/SharedFramework.wixproj +++ b/src/Installers/Windows/SharedFramework/SharedFramework.wixproj @@ -61,12 +61,16 @@ + $(InstallersOutputPath) $(InstallersOutputPath) $(InstallersOutputPath) + $(SharedFrameworkArm64HarvestRootPath)aspnetcore-runtime-internal-$(PackageVersion)-win-arm64.zip $(SharedFrameworkX64HarvestRootPath)aspnetcore-runtime-internal-$(PackageVersion)-win-x64.zip $(SharedFrameworkX86HarvestRootPath)aspnetcore-runtime-internal-$(PackageVersion)-win-x86.zip + + + diff --git a/src/Installers/Windows/SharedFrameworkBundle/SharedFrameworkBundle.wixproj b/src/Installers/Windows/SharedFrameworkBundle/SharedFrameworkBundle.wixproj index 7aa16e58ec00..f9f285c87394 100644 --- a/src/Installers/Windows/SharedFrameworkBundle/SharedFrameworkBundle.wixproj +++ b/src/Installers/Windows/SharedFrameworkBundle/SharedFrameworkBundle.wixproj @@ -29,20 +29,35 @@ - - - SharedFrameworkLib - {5244BC49-2568-4701-80A6-EAB8950AB5FA} - True - True - - - SharedFrameworkLib - {5244BC49-2568-4701-80A6-EAB8950AB5FA} - True - True - - + + + + + SharedFrameworkLib + {5244BC49-2568-4701-80A6-EAB8950AB5FA} + True + True + + + + + + + SharedFrameworkLib + {5244BC49-2568-4701-80A6-EAB8950AB5FA} + True + True + + + SharedFrameworkLib + {5244BC49-2568-4701-80A6-EAB8950AB5FA} + True + True + + + + + diff --git a/src/Installers/Windows/SharedFrameworkLib/Library.wxs b/src/Installers/Windows/SharedFrameworkLib/Library.wxs index dde16acbd7ff..c30f743d0bb3 100644 --- a/src/Installers/Windows/SharedFrameworkLib/Library.wxs +++ b/src/Installers/Windows/SharedFrameworkLib/Library.wxs @@ -16,6 +16,9 @@ + + + - + @@ -21,7 +21,7 @@ - + diff --git a/src/Installers/Windows/Wix.targets b/src/Installers/Windows/Wix.targets index ec321d4c41a6..4112082782a1 100644 --- a/src/Installers/Windows/Wix.targets +++ b/src/Installers/Windows/Wix.targets @@ -8,6 +8,11 @@ <_FileRevisionVersion Condition=" '$(_FileRevisionVersion)' == '' ">42424 $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$(AspNetCorePatchVersion).$(_FileRevisionVersion) + + + $(DefineConstants);InstallerVersion=500 + $(DefineConstants);InstallerVersion=200 + $(DefineConstants);MajorVersion=$(AspNetCoreMajorVersion) $(DefineConstants);MinorVersion=$(AspNetCoreMinorVersion) $(DefineConstants);Version=$(Version)