diff --git a/.vsts-pr.yml b/.vsts-pr.yml
new file mode 100644
index 000000000..0b653655f
--- /dev/null
+++ b/.vsts-pr.yml
@@ -0,0 +1,437 @@
+trigger:
+ batch: true
+ branches:
+ include:
+ - main
+ - master
+ - release/*
+ - internal/release/3.*
+ - internal/release/5.*
+ - internal/release/6.*
+
+variables:
+- name: _PublishUsingPipelines
+ value: false
+- name: PostBuildSign
+ value: true
+- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - name: Codeql.Enabled
+ value: true
+ - group: DotNet-DotNetCli-Storage
+ - group: DotNet-Installer-SDLValidation-Params
+ - name: _PublishUsingPipelines
+ value: true
+
+# Default to running tests in PRs and public CI, but not in official builds
+- name: _WindowsTestArg
+ value: '-test'
+- name: _NonWindowsTestArg
+ value: '--test'
+- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - name: _WindowsTestArg
+ value: ''
+ - name: _NonWindowsTestArg
+ value: ''
+
+- name: _InternalRuntimeDownloadArgs
+ value: ''
+
+- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
+ - group: DotNetBuilds storage account read tokens
+ - name: _InternalRuntimeDownloadArgs
+ value: /p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal
+ /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64)
+ /p:dotnetbuilds-internal-container-read-token-base64=$(dotnetbuilds-internal-container-read-token-base64)
+
+stages:
+- stage: build
+ jobs:
+ - job: Publish_Build_Configuration
+ pool:
+ ${{ if eq(variables['System.TeamProject'], 'public') }}:
+ name: NetCore-Svc-Public
+ demands: ImageOverride -equals windows.vs2019.amd64.open
+ ${{ if eq(variables['System.TeamProject'], 'internal') }}:
+ name: NetCore1ESPool-Svc-Internal
+ demands: ImageOverride -equals windows.vs2019.amd64
+ steps:
+ - publish: $(Build.SourcesDirectory)\eng\BuildConfiguration
+ artifact: BuildConfiguration
+ displayName: Publish Build Config
+ - template: /eng/build.yml
+ parameters:
+ agentOs: Windows_NT
+ pool:
+ ${{ if eq(variables['System.TeamProject'], 'public') }}:
+ name: NetCore-Svc-Public
+ demands: ImageOverride -equals windows.vs2019.amd64.open
+ ${{ if eq(variables['System.TeamProject'], 'internal') }}:
+ name: NetCore1ESPool-Svc-Internal
+ demands: ImageOverride -equals windows.vs2019.amd64
+ timeoutInMinutes: 180
+ strategy:
+ matrix:
+ # Public-only builds
+ ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
+ Build_Debug_x86:
+ _BuildConfig: Debug
+ _BuildArchitecture: x86
+ _DOTNET_CLI_UI_LANGUAGE: ''
+ _AdditionalBuildParameters: ''
+ _TestArg: $(_WindowsTestArg)
+ Build_ES_Debug_x64:
+ _BuildConfig: Debug
+ _BuildArchitecture: x64
+ _DOTNET_CLI_UI_LANGUAGE: es
+ _AdditionalBuildParameters: ''
+ _TestArg: ''
+ # Internal-only builds
+ ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ Build_Release_x86:
+ _BuildConfig: Release
+ _BuildArchitecture: x86
+ _DOTNET_CLI_UI_LANGUAGE: ''
+ _AdditionalBuildParameters: ''
+ _TestArg: $(_WindowsTestArg)
+ # Always run builds
+ Build_Release_x64:
+ _BuildConfig: Release
+ _BuildArchitecture: x64
+ _DOTNET_CLI_UI_LANGUAGE: ''
+ _AdditionalBuildParameters: '/p:PublishInternalAsset=true'
+ _TestArg: $(_WindowsTestArg)
+ Build_Release_arm:
+ _BuildConfig: Release
+ _BuildArchitecture: arm
+ _DOTNET_CLI_UI_LANGUAGE: ''
+ _AdditionalBuildParameters: ''
+ # Never run tests on arm64
+ _TestArg: ''
+ Build_Release_arm64:
+ _BuildConfig: Release
+ _BuildArchitecture: arm64
+ _DOTNET_CLI_UI_LANGUAGE: ''
+ _AdditionalBuildParameters: ''
+ # Never run tests on arm64
+ _TestArg: ''
+
+ - template: /eng/build.yml
+ parameters:
+ agentOs: Windows_NT
+ pool:
+ ${{ if eq(variables['System.TeamProject'], 'public') }}:
+ name: NetCore-Svc-Public
+ demands: ImageOverride -equals windows.vs2019.amd64.open
+ ${{ if eq(variables['System.TeamProject'], 'internal') }}:
+ name: NetCore1ESPool-Svc-Internal
+ demands: ImageOverride -equals windows.vs2019.amd64
+ timeoutInMinutes: 180
+ strategy:
+ matrix:
+ # Always run builds
+ Build_Release_x64:
+ _BuildConfig: Release
+ _BuildArchitecture: x64
+ _DOTNET_CLI_UI_LANGUAGE: ''
+ _AdditionalBuildParameters: '/p:PublishInternalAsset=true'
+ # Never run tests on PGO bits
+ _TestArg: ''
+ Build_Release_x86:
+ _BuildConfig: Release
+ _BuildArchitecture: x86
+ _DOTNET_CLI_UI_LANGUAGE: ''
+ _AdditionalBuildParameters: ''
+ _TestArg: ''
+ pgoInstrument: true
+
+ - template: /eng/build.yml
+ parameters:
+ agentOs: Linux
+ pool:
+ ${{ if eq(variables['System.TeamProject'], 'public') }}:
+ name: NetCore-Svc-Public
+ demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
+ ${{ if eq(variables['System.TeamProject'], 'internal') }}:
+ name: NetCore1ESPool-Svc-Internal
+ demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
+ timeoutInMinutes: 180
+ strategy:
+ matrix:
+ ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
+ Build_Ubuntu_18_04_Debug_x64:
+ _BuildConfig: Debug
+ _DockerParameter: '--docker ubuntu.18.04'
+ _LinuxPortable: '--linux-portable'
+ _RuntimeIdentifier: ''
+ _BuildArchitecture: 'x64'
+ _TestArg: $(_NonWindowsTestArg)
+ Build_Fedora_29_Debug_x64:
+ _BuildConfig: Debug
+ _DockerParameter: '--docker fedora.29'
+ _LinuxPortable: '--linux-portable'
+ _RuntimeIdentifier: ''
+ _BuildArchitecture: 'x64'
+ _TestArg: $(_NonWindowsTestArg)
+ Build_CentOS_7_1_Debug_x64:
+ _BuildConfig: Debug
+ _DockerParameter: '--docker centos'
+ _LinuxPortable: ''
+ _RuntimeIdentifier: ''
+ _BuildArchitecture: 'x64'
+ _TestArg: $(_NonWindowsTestArg)
+ Build_Debian_11_Debug_x64:
+ _BuildConfig: Debug
+ _DockerParameter: '--docker debian'
+ _LinuxPortable: ''
+ _RuntimeIdentifier: ''
+ _BuildArchitecture: 'x64'
+ _AdditionalBuildParameters: '/p:BuildSdkDeb=true'
+ _TestArg: $(_NonWindowsTestArg)
+ Build_Rhel_7_2_Release_x64:
+ _BuildConfig: Release
+ _DockerParameter: '--docker rhel'
+ _LinuxPortable: ''
+ _RuntimeIdentifier: ''
+ _BuildArchitecture: 'x64'
+ _TestArg: $(_NonWindowsTestArg)
+ Build_Rhel_7_2_Release_Arm64:
+ _BuildConfig: Release
+ _DockerParameter: '--docker rhel'
+ _LinuxPortable: ''
+ _RuntimeIdentifier: '--runtime-id linux-arm64'
+ _BuildArchitecture: 'arm64'
+ # Never run tests on arm
+ _TestArg: ''
+ _AdditionalBuildParameters: '/p:CLIBUILD_SKIP_TESTS=true'
+ Build_Arm_Debug:
+ _BuildConfig: Debug
+ _DockerParameter: ''
+ _LinuxPortable: '--linux-portable'
+ _RuntimeIdentifier: '--runtime-id linux-arm'
+ _BuildArchitecture: 'arm'
+ # Never run tests on arm
+ _TestArg: ''
+ Build_Arm64_Debug:
+ _BuildConfig: Debug
+ _DockerParameter: ''
+ _LinuxPortable: '--linux-portable'
+ _RuntimeIdentifier: '--runtime-id linux-arm64'
+ _BuildArchitecture: 'arm64'
+ # Never run tests on arm64
+ _TestArg: ''
+ Build_Linux_musl_Debug_arm:
+ _BuildConfig: Debug
+ # linux-musl-arm cross gen depends on glibc 2.27 (this OS has it)
+ _DockerParameter: '--docker ubuntu.18.04'
+ _LinuxPortable: ''
+ _RuntimeIdentifier: '--runtime-id linux-musl-arm'
+ _BuildArchitecture: 'arm'
+ _AdditionalBuildParameters: '/p:OSName="linux-musl"'
+ # Never run tests on arm
+ _TestArg: ''
+ Build_Linux_musl_Debug_arm64:
+ _BuildConfig: Debug
+ _DockerParameter: ''
+ _LinuxPortable: ''
+ _RuntimeIdentifier: '--runtime-id linux-musl-arm64'
+ _BuildArchitecture: 'arm64'
+ _AdditionalBuildParameters: '/p:OSName="linux-musl"'
+ # Never run tests on arm64
+ _TestArg: ''
+ Build_Linux_musl_Debug_x64:
+ _BuildConfig: Debug
+ _DockerParameter: '--docker alpine.3.15'
+ _LinuxPortable: ''
+ _RuntimeIdentifier: '--runtime-id linux-musl-x64'
+ _BuildArchitecture: 'x64'
+ # Pass in HostOSName when running on alpine
+ _AdditionalBuildParameters: '/p:HostOSName="linux-musl"'
+ _TestArg: $(_NonWindowsTestArg)
+ ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ Build_Arm_Release:
+ _BuildConfig: Release
+ _DockerParameter: ''
+ _LinuxPortable: '--linux-portable'
+ _RuntimeIdentifier: '--runtime-id linux-arm'
+ _BuildArchitecture: 'arm'
+ # Never run tests on arm
+ _TestArg: ''
+ Build_Arm64_Release:
+ _BuildConfig: Release
+ _DockerParameter: ''
+ _LinuxPortable: '--linux-portable'
+ _RuntimeIdentifier: '--runtime-id linux-arm64'
+ _BuildArchitecture: 'arm64'
+ # Never run tests on arm64
+ _TestArg: ''
+ Build_Linux_musl_Release_arm:
+ _BuildConfig: Release
+ # linux-musl-arm cross gen depends on glibc 2.27 (this OS has it)
+ _DockerParameter: '--docker ubuntu.18.04'
+ _LinuxPortable: ''
+ _RuntimeIdentifier: '--runtime-id linux-musl-arm'
+ _BuildArchitecture: 'arm'
+ _AdditionalBuildParameters: '/p:OSName="linux-musl"'
+ # Never run tests on arm
+ _TestArg: ''
+ Build_Linux_musl_Release_arm64:
+ _BuildConfig: Release
+ _DockerParameter: ''
+ _LinuxPortable: ''
+ _RuntimeIdentifier: '--runtime-id linux-musl-arm64'
+ _BuildArchitecture: 'arm64'
+ _AdditionalBuildParameters: '/p:OSName="linux-musl"'
+ # Never run tests on arm64
+ _TestArg: ''
+ Build_Linux_musl_Release_x64:
+ _BuildConfig: Release
+ _DockerParameter: '--docker alpine.3.15'
+ _LinuxPortable: ''
+ _RuntimeIdentifier: '--runtime-id linux-musl-x64'
+ _BuildArchitecture: 'x64'
+ # Pass in HostOSName when running on alpine
+ _AdditionalBuildParameters: '/p:HostOSName="linux-musl"'
+ Build_Linux_Portable_Deb_Release_x64:
+ _BuildConfig: Release
+ _DockerParameter: '--docker ubuntu.18.04'
+ _LinuxPortable: '--linux-portable'
+ _RuntimeIdentifier: ''
+ _BuildArchitecture: 'x64'
+ # Do not publish zips and tarballs. The linux-x64 binaries are
+ # already published by Build_LinuxPortable_Release_x64
+ _AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:BuildSdkDeb=true'
+ _TestArg: $(_NonWindowsTestArg)
+ Build_Linux_Portable_Rpm_Release_x64:
+ _BuildConfig: Release
+ _DockerParameter: '--docker rhel'
+ _LinuxPortable: '--linux-portable'
+ _RuntimeIdentifier: ''
+ _BuildArchitecture: 'x64'
+ # Do not publish zips and tarballs. The linux-x64 binaries are
+ # already published by Build_LinuxPortable_Release_x64
+ _AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false'
+ _TestArg: $(_NonWindowsTestArg)
+ Build_Linux_Portable_Rpm_Release_Arm64:
+ _BuildConfig: Release
+ _DockerParameter: '--docker rhel'
+ _LinuxPortable: '--linux-portable'
+ _RuntimeIdentifier: '--runtime-id linux-arm64'
+ _BuildArchitecture: 'arm64'
+ # Do not publish zips and tarballs. The linux-x64 binaries are
+ # already published by Build_LinuxPortable_Release_x64
+ _AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:CLIBUILD_SKIP_TESTS=true'
+ # Never run tests on arm64
+ _TestArg: ''
+ Build_LinuxPortable_Release_x64:
+ _BuildConfig: Release
+ _DockerParameter: ''
+ _LinuxPortable: '--linux-portable'
+ _RuntimeIdentifier: ''
+ _BuildArchitecture: 'x64'
+ _TestArg: $(_NonWindowsTestArg)
+
+ - template: /eng/build.yml
+ parameters:
+ agentOs: Linux
+ pool:
+ ${{ if eq(variables['System.TeamProject'], 'public') }}:
+ name: NetCore-Svc-Public
+ demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
+ ${{ if eq(variables['System.TeamProject'], 'internal') }}:
+ name: NetCore1ESPool-Svc-Internal
+ demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
+ timeoutInMinutes: 180
+ strategy:
+ matrix:
+ # Always run builds
+ Build_LinuxPortable_Release_x64:
+ _BuildConfig: Release
+ _DockerParameter: ''
+ _LinuxPortable: '--linux-portable'
+ _RuntimeIdentifier: ''
+ _BuildArchitecture: 'x64'
+ _TestArg: ''
+ pgoInstrument: true
+
+ - template: /eng/build.yml
+ parameters:
+ agentOs: Darwin
+ pool:
+ vmImage: 'macOS-latest'
+ timeoutInMinutes: 180
+ strategy:
+ matrix:
+ Build_Release_x64:
+ _BuildConfig: Release
+ _RuntimeIdentifier: ''
+ _BuildArchitecture: 'x64'
+ _TestArg: $(_NonWindowsTestArg)
+ Build_Release_arm64:
+ _BuildConfig: Release
+ _RuntimeIdentifier: '--runtime-id osx-arm64'
+ _BuildArchitecture: 'arm64'
+ # Never run tests on arm64
+ _TestArg: ''
+
+ - template: /eng/common/templates/jobs/source-build.yml
+
+ - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball.yml
+
+ # For .NET 6.0, source-build only supports 6.0.1xx. Disable tarball build validation in all other branches.
+ # - ${{ if in(variables['Build.Reason'], 'PullRequest') }}:
+ # - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml
+ # parameters:
+ # dependsOn: Source_Build_Create_Tarball
+
+ # https://github.com/dotnet/core-sdk/issues/248
+ # - template: /eng/build.yml
+ # parameters:
+ # agentOs: FreeBSD
+ # queue:
+ # name: dnceng-freebsd-internal
+ # timeoutInMinutes: 180
+ # matrix:
+ # Build_Release:
+ # _BuildConfig: Release
+ # _BuildArchitecture: 'x64'
+ # _AdditionalBuildParameters: '/p:DisableSourceLink=true /p:DISABLE_CROSSGEN=true'
+
+ - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - template: /eng/common/templates/job/publish-build-assets.yml
+ parameters:
+ dependsOn:
+ - Windows_NT
+ - Linux
+ - Darwin
+ - Source_Build_Managed
+ - Source_Build_Create_Tarball
+ - PGO_Linux
+ - PGO_Windows_NT
+ publishUsingPipelines: true
+ pool:
+ ${{ if eq(variables['System.TeamProject'], 'internal') }}:
+ name: NetCore1ESPool-Svc-Internal
+ demands: ImageOverride -equals windows.vs2017.amd64
+
+
+- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - template: eng\common\templates\post-build\post-build.yml
+ parameters:
+ publishingInfraVersion: 3
+ enableSymbolValidation: false
+ enableSigningValidation: false
+ enableNugetValidation: false
+ enableSourceLinkValidation: false
+ publishInstallersAndChecksums: true
+ SDLValidationParameters:
+ enable: false
+ params: ' -SourceToolsList @("policheck","credscan")
+ -TsaInstanceURL $(_TsaInstanceURL)
+ -TsaProjectName $(_TsaProjectName)
+ -TsaNotificationEmail $(_TsaNotificationEmail)
+ -TsaCodebaseAdmin $(_TsaCodebaseAdmin)
+ -TsaBugAreaPath $(_TsaBugAreaPath)
+ -TsaIterationPath $(_TsaIterationPath)
+ -TsaRepositoryName "dotnet-installer"
+ -TsaCodebaseName "dotnet-installer"
+ -TsaPublish $True'
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index d6f61a051..a7c28e060 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -211,9 +211,9 @@
https://github.com/dotnet/arcade
96facbceaca1e4eb498055c005088764d3b38dff
-
+
https://github.com/dotnet/source-build-reference-packages
- 6425c284100043ea5829deb255811d3487a91fb6
+ 2e6cb1a0008be982effb0c5d9e96a4ff138352d4
diff --git a/eng/Versions.props b/eng/Versions.props
index c25059d2c..f330e85e8 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -8,7 +8,7 @@
6
0
4
- 20
+ 21
$(VersionMajor).$(VersionMinor).$(VersionSDKMinor)$(VersionFeature)
servicing
$(VersionMajor).$(VersionMinor)
diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdk.diff b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdk.diff
index dfeb1a2f8..71ae3f0b9 100644
--- a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdk.diff
+++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdk.diff
@@ -14,20 +14,7 @@ index ------------
./packs/Microsoft.AspNetCore.App.Ref/
./packs/Microsoft.AspNetCore.App.Ref/x.y.z/
@@ ------------ @@
- ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.JSInterop.xml
- ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Net.Http.Headers.dll
- ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Net.Http.Headers.xml
-+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.DiagnosticSource.dll
-+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.DiagnosticSource.xml
- ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.EventLog.dll
- ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.EventLog.xml
-+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Formats.Asn1.dll
-+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Formats.Asn1.xml
- ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.IO.Pipelines.dll
./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.IO.Pipelines.xml
-+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.CompilerServices.Unsafe.dll
-+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Security.AccessControl.dll
-+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Security.AccessControl.xml
./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.Xml.dll
./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.Xml.xml
-./packs/Microsoft.NETCore.App.Host.portable-rid/
@@ -42,10 +29,6 @@ index ------------
-./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/portable-rid/native/libnethost.so
-./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/portable-rid/native/nethost.h
-./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/portable-rid/native/singlefilehost
-+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Text.Encodings.Web.dll
-+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Text.Encodings.Web.xml
-+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Text.Json.dll
-+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Text.Json.xml
+./packs/Microsoft.NETCore.App.Host.banana-rid/
+./packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/
+./packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/