diff --git a/eng/pipelines/templates/stages/vmr-build.yml b/eng/pipelines/templates/stages/vmr-build.yml
index e6ae84bdc..3825ce22f 100644
--- a/eng/pipelines/templates/stages/vmr-build.yml
+++ b/eng/pipelines/templates/stages/vmr-build.yml
@@ -747,6 +747,59 @@ stages:
targetOS: linux
targetArchitecture: arm64
+ - template: ../jobs/vmr-build.yml
+ parameters:
+ buildName: Mariner_x64_Cross_Alpine
+ isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
+ vmrBranch: ${{ variables.VmrBranch }}
+ architecture: x64
+ pool: ${{ parameters.pool_Linux }}
+ container: ${{ variables.marinerX64AlpineCrossContainer }}
+ crossRootFs: '/crossrootfs/x64'
+ targetOS: linux-musl
+ targetArchitecture: x64
+ extraProperties: /p:TargetRID=linux-musl-x64
+
+ - template: ../jobs/vmr-build.yml
+ parameters:
+ buildName: Mariner_x64_Cross_Alpine_Mono
+ isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
+ vmrBranch: ${{ variables.VmrBranch }}
+ architecture: x64
+ pool: ${{ parameters.pool_Linux }}
+ container: ${{ variables.marinerX64AlpineCrossContainer }}
+ crossRootFs: '/crossrootfs/x64'
+ useMonoRuntime: true
+ targetOS: linux-musl
+ targetArchitecture: x64
+ extraProperties: /p:TargetRID=linux-musl-x64
+
+ - template: ../jobs/vmr-build.yml
+ parameters:
+ buildName: Mariner_x64_Cross_Alpine
+ isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
+ vmrBranch: ${{ variables.VmrBranch }}
+ architecture: arm
+ pool: ${{ parameters.pool_Linux }}
+ container: ${{ variables.marinerArmAlpineCrossContainer }}
+ crossRootFs: '/crossrootfs/arm'
+ targetOS: linux-musl
+ targetArchitecture: arm
+ extraProperties: /p:TargetRID=linux-musl-arm
+
+ - template: ../jobs/vmr-build.yml
+ parameters:
+ buildName: Mariner_x64_Cross_Alpine
+ isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
+ vmrBranch: ${{ variables.VmrBranch }}
+ architecture: arm64
+ pool: ${{ parameters.pool_Linux }}
+ container: ${{ variables.marinerArm64AlpineCrossContainer }}
+ crossRootFs: '/crossrootfs/arm64'
+ targetOS: linux-musl
+ targetArchitecture: arm64
+ extraProperties: /p:TargetRID=linux-musl-arm64
+
- template: ../jobs/vmr-build.yml
parameters:
buildName: OSX
diff --git a/eng/pipelines/templates/variables/vmr-build.yml b/eng/pipelines/templates/variables/vmr-build.yml
index 6db4202d9..9315ac61c 100644
--- a/eng/pipelines/templates/variables/vmr-build.yml
+++ b/eng/pipelines/templates/variables/vmr-build.yml
@@ -26,6 +26,12 @@ variables:
value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm
- name: marinerArm64CrossContainer
value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm64
+- name: marinerX64AlpineCrossContainer
+ value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-amd64-alpine
+- name: marinerArmAlpineCrossContainer
+ value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm-alpine
+- name: marinerArm64AlpineCrossContainer
+ value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm64-alpine
- name: androidCrossContainer
value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-android-amd64
- name: browserCrossContainer
diff --git a/src/SourceBuild/content/repo-projects/runtime.proj b/src/SourceBuild/content/repo-projects/runtime.proj
index 318fe6ad0..94e18fb7e 100644
--- a/src/SourceBuild/content/repo-projects/runtime.proj
+++ b/src/SourceBuild/content/repo-projects/runtime.proj
@@ -15,8 +15,8 @@
$(BuildArgs) $(FlagParameterPrefix)arch $(TargetArchitecture)
$(BuildArgs) $(FlagParameterPrefix)os $(TargetOS)
$(BuildArgs) /p:TargetRid=$(TargetRid)
- $(BuildArgs) /p:RuntimeOS=$(RuntimeOS)
- $(BuildArgs) /p:BaseOS=$(BaseOS)
+ $(BuildArgs) /p:RuntimeOS=$(RuntimeOS)
+ $(BuildArgs) /p:BaseOS=$(BaseOS)
$(BuildArgs) /p:DotNetBuildRuntimeWasmEnableThreads=true
$(BuildArgs) /p:DotNetBuildRuntimeNativeAOTRuntimePack=true
$(BuildArgs) $(FlagParameterPrefix)pgoinstrument
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-linux-musl-arm.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-linux-musl-arm.diff
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-linux-musl-arm64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-linux-musl-arm64.diff
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-linux-musl-x64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-linux-musl-x64.diff
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-musl-arm.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-musl-arm.diff
new file mode 100644
index 000000000..fff0fe82b
--- /dev/null
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-musl-arm.diff
@@ -0,0 +1,20 @@
+diff --git a/msftSdkFiles.txt b/ubSdkFiles.txt
+index ------------
+--- a/msftSdkFiles.txt
++++ b/ubSdkFiles.txt
+@@ ------------ @@
+ ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/
+ ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/
+ ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.dll
++./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.Messages.dll
+ ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Security.Cryptography.Pkcs.dll
+ ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Windows.Extensions.dll
+ ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.CodeDom.dll
+@@ ------------ @@
+ ./sdk/x.y.z/Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.dll
+ ./sdk/x.y.z/Microsoft.NET.StringTools.dll
+ ./sdk/x.y.z/Microsoft.NETCoreSdk.BundledCliTools.props
+-./sdk/x.y.z/Microsoft.NETCoreSdk.BundledMSBuildInformation.props
+ ./sdk/x.y.z/Microsoft.NETCoreSdk.BundledVersions.props
+ ./sdk/x.y.z/Microsoft.NETFramework.CurrentVersion.props
+ ./sdk/x.y.z/Microsoft.NETFramework.CurrentVersion.targets
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-musl-arm64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-musl-arm64.diff
new file mode 100644
index 000000000..fff0fe82b
--- /dev/null
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-musl-arm64.diff
@@ -0,0 +1,20 @@
+diff --git a/msftSdkFiles.txt b/ubSdkFiles.txt
+index ------------
+--- a/msftSdkFiles.txt
++++ b/ubSdkFiles.txt
+@@ ------------ @@
+ ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/
+ ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/
+ ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.dll
++./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.Messages.dll
+ ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Security.Cryptography.Pkcs.dll
+ ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Windows.Extensions.dll
+ ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.CodeDom.dll
+@@ ------------ @@
+ ./sdk/x.y.z/Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.dll
+ ./sdk/x.y.z/Microsoft.NET.StringTools.dll
+ ./sdk/x.y.z/Microsoft.NETCoreSdk.BundledCliTools.props
+-./sdk/x.y.z/Microsoft.NETCoreSdk.BundledMSBuildInformation.props
+ ./sdk/x.y.z/Microsoft.NETCoreSdk.BundledVersions.props
+ ./sdk/x.y.z/Microsoft.NETFramework.CurrentVersion.props
+ ./sdk/x.y.z/Microsoft.NETFramework.CurrentVersion.targets
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-musl-x64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-musl-x64.diff
new file mode 100644
index 000000000..fff0fe82b
--- /dev/null
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-musl-x64.diff
@@ -0,0 +1,20 @@
+diff --git a/msftSdkFiles.txt b/ubSdkFiles.txt
+index ------------
+--- a/msftSdkFiles.txt
++++ b/ubSdkFiles.txt
+@@ ------------ @@
+ ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/
+ ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/
+ ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.dll
++./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.Messages.dll
+ ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Security.Cryptography.Pkcs.dll
+ ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Windows.Extensions.dll
+ ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.CodeDom.dll
+@@ ------------ @@
+ ./sdk/x.y.z/Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.dll
+ ./sdk/x.y.z/Microsoft.NET.StringTools.dll
+ ./sdk/x.y.z/Microsoft.NETCoreSdk.BundledCliTools.props
+-./sdk/x.y.z/Microsoft.NETCoreSdk.BundledMSBuildInformation.props
+ ./sdk/x.y.z/Microsoft.NETCoreSdk.BundledVersions.props
+ ./sdk/x.y.z/Microsoft.NETFramework.CurrentVersion.props
+ ./sdk/x.y.z/Microsoft.NETFramework.CurrentVersion.targets