Skip to content

Commit

Permalink
Enable Alpine ARM support (#41982)
Browse files Browse the repository at this point in the history
* Enable Alpine ARM support

This change enables Alpine ARM support in the lab build scripts,
packages and RID graph. It enables CI and official builds. 
No test leg execution until packages are produced.
  • Loading branch information
janvorli authored Sep 10, 2020
1 parent bb921d6 commit d992e0c
Show file tree
Hide file tree
Showing 10 changed files with 250 additions and 2 deletions.
25 changes: 25 additions & 0 deletions eng/pipelines/common/platform-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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')) }}:
Expand Down
7 changes: 7 additions & 0 deletions eng/pipelines/coreclr/templates/helix-queues-setup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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') }}:
Expand Down
5 changes: 5 additions & 0 deletions eng/pipelines/runtime-official.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ stages:
- Linux_arm
- Linux_arm64
- Linux_musl_x64
- Linux_musl_arm
- Linux_musl_arm64
- Windows_NT_x86
- Windows_NT_x64
Expand All @@ -75,6 +76,7 @@ stages:
- Linux_arm
- Linux_arm64
- Linux_musl_x64
- Linux_musl_arm
- Linux_musl_arm64
- Windows_NT_x64
- Windows_NT_arm
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -174,6 +177,7 @@ stages:
- Linux_arm
- Linux_arm64
- Linux_musl_x64
- Linux_musl_arm
- Linux_musl_arm64
- Windows_NT_x86
- Windows_NT_x64
Expand Down Expand Up @@ -215,6 +219,7 @@ stages:
- Linux_arm
- Linux_arm64
- Linux_musl_x64
- Linux_musl_arm
- Linux_musl_arm64
- Windows_NT_x86
- Windows_NT_x64
Expand Down
4 changes: 4 additions & 0 deletions eng/pipelines/runtime.yml
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ jobs:
- Linux_x64
- Linux_arm
- Linux_arm64
- Linux_musl_arm
- Linux_musl_arm64
- Linux_musl_x64
- Windows_NT_x86
Expand Down Expand Up @@ -209,6 +210,7 @@ jobs:
- Linux_arm
- Linux_arm64
- Linux_musl_x64
- Linux_musl_arm
- Linux_musl_arm64
- Windows_NT_x64
- Windows_NT_x86
Expand Down Expand Up @@ -563,6 +565,7 @@ jobs:
buildConfig: Release
platforms:
- Linux_arm
- Linux_musl_arm
- Linux_musl_arm64
- Windows_NT_arm
- Windows_NT_arm64
Expand Down Expand Up @@ -651,6 +654,7 @@ jobs:
buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
platforms:
- Linux_arm
- Linux_musl_arm
- Linux_musl_arm64
- Windows_NT_x86
- Windows_NT_arm
Expand Down
3 changes: 3 additions & 0 deletions src/coreclr/src/.nuget/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,9 @@
<OfficialBuildRID Include="linux-arm">
<Platform>arm</Platform>
</OfficialBuildRID>
<OfficialBuildRID Include="linux-musl-arm">
<Platform>arm</Platform>
</OfficialBuildRID>
<OfficialBuildRID Include="linux-arm64">
<Platform>arm64</Platform>
</OfficialBuildRID>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

<PropertyGroup>
<BuildIdentityPackage>false</BuildIdentityPackage>
<SupportedRids>linux-x64;linux-musl-x64;linux-arm64;linux-musl-arm64;linux-arm;</SupportedRids>
<SupportedRids>linux-x64;linux-musl-x64;linux-arm64;linux-musl-arm64;linux-arm;linux-musl-arm</SupportedRids>
</PropertyGroup>

<Target Name="VerifyCrossDacProperties" BeforeTargets="Build">
Expand All @@ -19,6 +19,7 @@
<AdditionalProperties Condition="'%(Project.PackageTargetRuntime)' == 'linux-arm64'">%(AdditionalProperties);CrossDacBinRoot=$(CrossDacArtifactsDir)/Linux.arm64.$(Configuration)/x64</AdditionalProperties>
<AdditionalProperties Condition="'%(Project.PackageTargetRuntime)' == 'linux-musl-arm64'">%(AdditionalProperties);CrossDacBinRoot=$(CrossDacArtifactsDir)/Linux_musl.arm64.$(Configuration)/x64</AdditionalProperties>
<AdditionalProperties Condition="'%(Project.PackageTargetRuntime)' == 'linux-arm'">%(AdditionalProperties);CrossDacBinRoot=$(CrossDacArtifactsDir)/Linux.arm.$(Configuration)/x86</AdditionalProperties>
<AdditionalProperties Condition="'%(Project.PackageTargetRuntime)' == 'linux-musl-arm'">%(AdditionalProperties);CrossDacBinRoot=$(CrossDacArtifactsDir)/Linux_musl.arm.$(Configuration)/x86</AdditionalProperties>
</_projectsToBuild>
</ItemGroup>

Expand Down
3 changes: 3 additions & 0 deletions src/installer/pkg/projects/netcoreappRIDs.props
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@
<OfficialBuildRID Include="linux-arm64">
<Platform>arm64</Platform>
</OfficialBuildRID>
<OfficialBuildRID Include="linux-musl-arm">
<Platform>arm</Platform>
</OfficialBuildRID>
<OfficialBuildRID Include="linux-musl-arm64">
<Platform>arm64</Platform>
</OfficialBuildRID>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down
Loading

0 comments on commit d992e0c

Please sign in to comment.