From 438c8b8ae1423337a91bc8cd1d6f1d7369683285 Mon Sep 17 00:00:00 2001 From: Jan Vorlicek Date: Tue, 8 Sep 2020 21:04:15 +0200 Subject: [PATCH 1/4] Enable Alpine ARM support This change enables Alpine ARM support in the lab build scripts, packages and RID graph --- eng/pipelines/common/platform-matrix.yml | 25 +++ .../coreclr/templates/helix-queues-setup.yml | 7 + src/coreclr/src/.nuget/Directory.Build.props | 3 + ...Microsoft.CrossOsDiag.Private.CoreCLR.proj | 3 +- .../pkg/projects/netcoreappRIDs.props | 3 + .../runtime.compatibility.json | 152 ++++++++++++++++++ .../Microsoft.NETCore.Platforms/runtime.json | 48 ++++++ .../runtimeGroups.props | 2 +- 8 files changed, 241 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index a7a3a167004c2..2df65b14cdbbb 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -97,6 +97,31 @@ jobs: helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} +# Linux musl arm + +- ${{ if or(containsValue(parameters.platforms, 'Linux_musl_arm'), eq(parameters.platformGroup, 'all')) }}: + - template: xplat-setup.yml + parameters: + jobTemplate: ${{ parameters.jobTemplate }} + helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }} + variables: ${{ parameters.variables }} + osGroup: Linux + osSubgroup: _musl + archType: arm + platform: Linux_musl_arm + container: + image: ubuntu-18.04-cross-arm-alpine-20200818211451-14441ae + registry: mcr + jobParameters: + runtimeFlavor: ${{ parameters.runtimeFlavor }} + stagedBuild: ${{ parameters.stagedBuild }} + buildConfig: ${{ parameters.buildConfig }} + ${{ if eq(parameters.passPlatforms, true) }}: + platforms: ${{ parameters.platforms }} + helixQueueGroup: ${{ parameters.helixQueueGroup }} + crossrootfsDir: '/crossrootfs/arm' + ${{ insert }}: ${{ parameters.jobParameters }} + # Linux musl arm64 - ${{ if or(containsValue(parameters.platforms, 'Linux_musl_arm64'), eq(parameters.platformGroup, 'all')) }}: diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index caebaea069a02..c2e32f3789a9b 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -47,6 +47,13 @@ jobs: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - (Alpine.312.Amd64)ubuntu.1604.amd64@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.12-helix-20200602002622-e06dc59 + # Linux musl arm32 + - ${{ if eq(parameters.platform, 'Linux_musl_arm') }}: + - ${{ if eq(variables['System.TeamProject'], 'public') }}: + - (Alpine.312.Arm32.Open)Ubuntu.1804.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.12-helix-arm32v7-20200908125213-5bece88 + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - (Alpine.312.Arm32)Ubuntu.1804.ArmArch@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.12-helix-arm32v7-20200908125213-5bece88 + # Linux musl arm64 - ${{ if eq(parameters.platform, 'Linux_musl_arm64') }}: - ${{ if eq(variables['System.TeamProject'], 'public') }}: diff --git a/src/coreclr/src/.nuget/Directory.Build.props b/src/coreclr/src/.nuget/Directory.Build.props index 257da02a7ffc9..e44f8de0a11c6 100644 --- a/src/coreclr/src/.nuget/Directory.Build.props +++ b/src/coreclr/src/.nuget/Directory.Build.props @@ -166,6 +166,9 @@ arm + + arm + arm64 diff --git a/src/coreclr/src/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.proj b/src/coreclr/src/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.proj index 037a6b102605b..1b1eb74c02a52 100644 --- a/src/coreclr/src/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.proj +++ b/src/coreclr/src/.nuget/Microsoft.CrossOsDiag.Private.CoreCLR/Microsoft.CrossOsDiag.Private.CoreCLR.proj @@ -3,7 +3,7 @@ false - linux-x64;linux-musl-x64;linux-arm64;linux-musl-arm64;linux-arm; + linux-x64;linux-musl-x64;linux-arm64;linux-musl-arm64;linux-arm;linux-musl-arm @@ -19,6 +19,7 @@ %(AdditionalProperties);CrossDacBinRoot=$(CrossDacArtifactsDir)/Linux.arm64.$(Configuration)/x64 %(AdditionalProperties);CrossDacBinRoot=$(CrossDacArtifactsDir)/Linux_musl.arm64.$(Configuration)/x64 %(AdditionalProperties);CrossDacBinRoot=$(CrossDacArtifactsDir)/Linux.arm.$(Configuration)/x86 + %(AdditionalProperties);CrossDacBinRoot=$(CrossDacArtifactsDir)/Linux_musl.arm.$(Configuration)/x86 diff --git a/src/installer/pkg/projects/netcoreappRIDs.props b/src/installer/pkg/projects/netcoreappRIDs.props index 0b3024cf53838..86a934d2b9170 100644 --- a/src/installer/pkg/projects/netcoreappRIDs.props +++ b/src/installer/pkg/projects/netcoreappRIDs.props @@ -30,6 +30,9 @@ arm64 + + arm + arm64 diff --git a/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.compatibility.json b/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.compatibility.json index c425623dbd66c..e917621bdf192 100644 --- a/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.compatibility.json +++ b/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.compatibility.json @@ -7,6 +7,18 @@ "any", "base" ], + "alpine-arm": [ + "alpine-arm", + "alpine", + "linux-musl-arm", + "linux-musl", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], "alpine-arm64": [ "alpine-arm64", "alpine", @@ -44,6 +56,28 @@ "any", "base" ], + "alpine.3.10-arm": [ + "alpine.3.10-arm", + "alpine.3.10", + "alpine.3.9-arm", + "alpine.3.9", + "alpine.3.8-arm", + "alpine.3.8", + "alpine.3.7-arm", + "alpine.3.7", + "alpine.3.6-arm", + "alpine.3.6", + "alpine-arm", + "alpine", + "linux-musl-arm", + "linux-musl", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], "alpine.3.10-arm64": [ "alpine.3.10-arm64", "alpine.3.10", @@ -102,6 +136,30 @@ "any", "base" ], + "alpine.3.11-arm": [ + "alpine.3.11-arm", + "alpine.3.11", + "alpine.3.10-arm", + "alpine.3.10", + "alpine.3.9-arm", + "alpine.3.9", + "alpine.3.8-arm", + "alpine.3.8", + "alpine.3.7-arm", + "alpine.3.7", + "alpine.3.6-arm", + "alpine.3.6", + "alpine-arm", + "alpine", + "linux-musl-arm", + "linux-musl", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], "alpine.3.11-arm64": [ "alpine.3.11-arm64", "alpine.3.11", @@ -165,6 +223,32 @@ "any", "base" ], + "alpine.3.12-arm": [ + "alpine.3.12-arm", + "alpine.3.12", + "alpine.3.11-arm", + "alpine.3.11", + "alpine.3.10-arm", + "alpine.3.10", + "alpine.3.9-arm", + "alpine.3.9", + "alpine.3.8-arm", + "alpine.3.8", + "alpine.3.7-arm", + "alpine.3.7", + "alpine.3.6-arm", + "alpine.3.6", + "alpine-arm", + "alpine", + "linux-musl-arm", + "linux-musl", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], "alpine.3.12-arm64": [ "alpine.3.12-arm64", "alpine.3.12", @@ -226,6 +310,20 @@ "any", "base" ], + "alpine.3.6-arm": [ + "alpine.3.6-arm", + "alpine.3.6", + "alpine-arm", + "alpine", + "linux-musl-arm", + "linux-musl", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], "alpine.3.6-arm64": [ "alpine.3.6-arm64", "alpine.3.6", @@ -264,6 +362,22 @@ "any", "base" ], + "alpine.3.7-arm": [ + "alpine.3.7-arm", + "alpine.3.7", + "alpine.3.6-arm", + "alpine.3.6", + "alpine-arm", + "alpine", + "linux-musl-arm", + "linux-musl", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], "alpine.3.7-arm64": [ "alpine.3.7-arm64", "alpine.3.7", @@ -307,6 +421,24 @@ "any", "base" ], + "alpine.3.8-arm": [ + "alpine.3.8-arm", + "alpine.3.8", + "alpine.3.7-arm", + "alpine.3.7", + "alpine.3.6-arm", + "alpine.3.6", + "alpine-arm", + "alpine", + "linux-musl-arm", + "linux-musl", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], "alpine.3.8-arm64": [ "alpine.3.8-arm64", "alpine.3.8", @@ -355,6 +487,26 @@ "any", "base" ], + "alpine.3.9-arm": [ + "alpine.3.9-arm", + "alpine.3.9", + "alpine.3.8-arm", + "alpine.3.8", + "alpine.3.7-arm", + "alpine.3.7", + "alpine.3.6-arm", + "alpine.3.6", + "alpine-arm", + "alpine", + "linux-musl-arm", + "linux-musl", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], "alpine.3.9-arm64": [ "alpine.3.9-arm64", "alpine.3.9", diff --git a/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.json b/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.json index 1a7e4c320a506..026b236c7dbc2 100644 --- a/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.json +++ b/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.json @@ -5,6 +5,12 @@ "linux-musl" ] }, + "alpine-arm": { + "#import": [ + "alpine", + "linux-musl-arm" + ] + }, "alpine-arm64": { "#import": [ "alpine", @@ -22,6 +28,12 @@ "alpine.3.9" ] }, + "alpine.3.10-arm": { + "#import": [ + "alpine.3.10", + "alpine.3.9-arm" + ] + }, "alpine.3.10-arm64": { "#import": [ "alpine.3.10", @@ -39,6 +51,12 @@ "alpine.3.10" ] }, + "alpine.3.11-arm": { + "#import": [ + "alpine.3.11", + "alpine.3.10-arm" + ] + }, "alpine.3.11-arm64": { "#import": [ "alpine.3.11", @@ -56,6 +74,12 @@ "alpine.3.11" ] }, + "alpine.3.12-arm": { + "#import": [ + "alpine.3.12", + "alpine.3.11-arm" + ] + }, "alpine.3.12-arm64": { "#import": [ "alpine.3.12", @@ -73,6 +97,12 @@ "alpine" ] }, + "alpine.3.6-arm": { + "#import": [ + "alpine.3.6", + "alpine-arm" + ] + }, "alpine.3.6-arm64": { "#import": [ "alpine.3.6", @@ -90,6 +120,12 @@ "alpine.3.6" ] }, + "alpine.3.7-arm": { + "#import": [ + "alpine.3.7", + "alpine.3.6-arm" + ] + }, "alpine.3.7-arm64": { "#import": [ "alpine.3.7", @@ -107,6 +143,12 @@ "alpine.3.7" ] }, + "alpine.3.8-arm": { + "#import": [ + "alpine.3.8", + "alpine.3.7-arm" + ] + }, "alpine.3.8-arm64": { "#import": [ "alpine.3.8", @@ -124,6 +166,12 @@ "alpine.3.8" ] }, + "alpine.3.9-arm": { + "#import": [ + "alpine.3.9", + "alpine.3.8-arm" + ] + }, "alpine.3.9-arm64": { "#import": [ "alpine.3.9", diff --git a/src/libraries/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props b/src/libraries/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props index 76b491cbb381a..df624872ec492 100644 --- a/src/libraries/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props +++ b/src/libraries/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props @@ -15,7 +15,7 @@ linux-musl - x64;arm64 + x64;arm;arm64 3.6;3.7;3.8;3.9;3.10;3.11;3.12 From 89726136b4e4b6eacdf5abbf4b9c32a4e92c0700 Mon Sep 17 00:00:00 2001 From: Jan Vorlicek Date: Wed, 9 Sep 2020 19:08:17 +0200 Subject: [PATCH 2/4] Enable CI and official builds --- eng/pipelines/runtime-official.yml | 5 +++++ eng/pipelines/runtime.yml | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml index e1a3f8e7eefb1..335254846e536 100644 --- a/eng/pipelines/runtime-official.yml +++ b/eng/pipelines/runtime-official.yml @@ -54,6 +54,7 @@ stages: - Linux_arm - Linux_arm64 - Linux_musl_x64 + - Linux_musl_arm - Linux_musl_arm64 - Windows_NT_x86 - Windows_NT_x64 @@ -75,6 +76,7 @@ stages: - Linux_arm - Linux_arm64 - Linux_musl_x64 + - Linux_musl_arm - Linux_musl_arm64 - Windows_NT_x64 - Windows_NT_arm @@ -104,6 +106,7 @@ stages: - Linux_arm64 - Linux_musl_x64 - Browser_wasm + # - Linux_musl_arm # - Linux_musl_arm64 # - Windows_NT_x64 enable once coreclr.dll has a version header: https://github.com/dotnet/runtime/issues/37503 # - Windows_NT_x86 @@ -173,6 +176,7 @@ stages: - Linux_arm - Linux_arm64 - Linux_musl_x64 + - Linux_musl_arm - Linux_musl_arm64 - Windows_NT_x86 - Windows_NT_x64 @@ -214,6 +218,7 @@ stages: - Linux_arm - Linux_arm64 - Linux_musl_x64 + - Linux_musl_arm - Linux_musl_arm64 - Windows_NT_x86 - Windows_NT_x64 diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 3dcbae5869842..3c59b5139374d 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -142,6 +142,7 @@ jobs: - Linux_x64 - Linux_arm - Linux_arm64 + - Linux_musl_arm - Linux_musl_arm64 - Linux_musl_x64 - Windows_NT_x86 @@ -207,6 +208,7 @@ jobs: - Linux_arm - Linux_arm64 - Linux_musl_x64 + - Linux_musl_arm - Linux_musl_arm64 - Windows_NT_x64 - Windows_NT_x86 @@ -523,6 +525,7 @@ jobs: buildConfig: Release platforms: - Linux_arm + - Linux_musl_arm - Linux_musl_arm64 - Windows_NT_arm - Windows_NT_arm64 @@ -611,6 +614,7 @@ jobs: buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} platforms: - Linux_arm + - Linux_musl_arm - Linux_musl_arm64 - Windows_NT_x86 - Windows_NT_arm From a6c82c72a7eaa29ed8b20e30b89079c8f3ded0b6 Mon Sep 17 00:00:00 2001 From: Jan Vorlicek Date: Wed, 9 Sep 2020 19:18:07 +0200 Subject: [PATCH 3/4] Add missing libraries tests --- eng/pipelines/runtime.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 3c59b5139374d..585d19002b7cf 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -908,6 +908,7 @@ jobs: platforms: # - Windows_NT_arm return this when https://github.com/dotnet/runtime/issues/1097 is fixed. - Linux_arm + - Linux_musl_arm - Linux_musl_arm64 - Windows_NT_x86 helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml From 56d9497da2703ec4a3e833a8d755ea61e332332f Mon Sep 17 00:00:00 2001 From: Jan Vorlicek Date: Thu, 10 Sep 2020 10:33:19 +0200 Subject: [PATCH 4/4] Disable test leg execution until packages are available --- eng/pipelines/runtime.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 585d19002b7cf..3c59b5139374d 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -908,7 +908,6 @@ jobs: platforms: # - Windows_NT_arm return this when https://github.com/dotnet/runtime/issues/1097 is fixed. - Linux_arm - - Linux_musl_arm - Linux_musl_arm64 - Windows_NT_x86 helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml