Skip to content

Commit 6dc65b1

Browse files
authored
[Helix] run on arm queues (dotnet#11422)
1 parent 2f2d1e6 commit 6dc65b1

File tree

10 files changed

+62
-20
lines changed

10 files changed

+62
-20
lines changed

.azure/pipelines/helix-test.yml

+22-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ pr:
1010
jobs:
1111
- template: jobs/default-build.yml
1212
parameters:
13-
jobName: Helix
14-
jobDisplayName: 'Tests: Helix'
13+
jobName: Helix_x64
14+
jobDisplayName: 'Tests: Helix x64'
1515
agentOs: Windows
1616
timeoutInMinutes: 240
1717
steps:
@@ -25,3 +25,23 @@ jobs:
2525
- name: Helix_logs
2626
path: artifacts/log/
2727
publishOnError: true
28+
29+
# Build Helix ARM64
30+
- template: jobs/default-build.yml
31+
parameters:
32+
jobName: Helix_arm64
33+
jobDisplayName: "Tests: Helix ARM64"
34+
agentOs: Linux
35+
timeoutInMinutes: 240
36+
steps:
37+
- script: ./restore.sh -ci
38+
displayName: Restore
39+
- script: ./build.sh -ci --arch arm64 -test --no-build-nodejs -projects $(Build.SourcesDirectory)/eng/helix/helix.proj /p:IsHelixJob=true /p:BuildAllProjects=true /p:BuildNative=true -bl
40+
displayName: Run build.sh helix arm64 target
41+
env:
42+
SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops
43+
installNodeJs: false
44+
artifacts:
45+
- name: Helix_arm64_logs
46+
path: artifacts/logs/
47+
publishOnError: true

eng/helix/content/installnode.sh

+5-3
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,18 @@ if type -P "node" &>/dev/null; then
99
fi
1010

1111
node_version=$1
12+
arch=$2
1213
osname=`uname -s`
13-
echo $osname
1414
if [ "$osname" = "Darwin" ]; then
15-
platformarch='darwin-x64'
15+
platformarch="darwin-$arch"
1616
else
17-
platformarch='linux-x64'
17+
platformarch="linux-$arch"
1818
fi
19+
echo "PlatformArch: $platformarch"
1920
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
2021
output_dir="$DIR/node"
2122
url="http://nodejs.org/dist/v$node_version/node-v$node_version-$platformarch.tar.gz"
23+
echo "Downloading from: $url"
2224
tmp="$(mktemp -d -t install-node.XXXXXX)"
2325
trap "rm -rf $tmp" EXIT
2426
cd "$tmp"

eng/helix/content/runtests.cmd

+4-3
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,18 @@ set targetFrameworkIdentifier=%2
77
set sdkVersion=%3
88
set runtimeVersion=%4
99
set helixQueue=%5
10+
set arch=%6
1011

1112
set DOTNET_HOME=%HELIX_CORRELATION_PAYLOAD%\sdk
12-
set DOTNET_ROOT=%DOTNET_HOME%\x64
13+
set DOTNET_ROOT=%DOTNET_HOME%\%arch%
1314
set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
1415
set DOTNET_MULTILEVEL_LOOKUP=0
1516
set DOTNET_CLI_HOME=%HELIX_CORRELATION_PAYLOAD%\home
1617

1718
set PATH=%DOTNET_ROOT%;%PATH%;%HELIX_CORRELATION_PAYLOAD%\node\bin
1819

19-
powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -useb 'https://dot.net/v1/dotnet-install.ps1'))) -Architecture x64 -Version %sdkVersion% -InstallDir %DOTNET_ROOT%"
20-
powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -useb 'https://dot.net/v1/dotnet-install.ps1'))) -Architecture x64 -Runtime dotnet -Version %runtimeVersion% -InstallDir %DOTNET_ROOT%"
20+
powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -useb 'https://dot.net/v1/dotnet-install.ps1'))) -Architecture %arch% -Version %sdkVersion% -InstallDir %DOTNET_ROOT%"
21+
powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -useb 'https://dot.net/v1/dotnet-install.ps1'))) -Architecture %arch% -Runtime dotnet -Version %runtimeVersion% -InstallDir %DOTNET_ROOT%"
2122

2223
set HELIX=%helixQueue%
2324

eng/helix/helix.proj

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
<PropertyGroup Condition=" '$(ContinuousIntegrationBuild)' == 'true' ">
2828
<HelixType>ci</HelixType>
2929
<Creator>aspnetcore</Creator>
30-
<HelixBuild>$(BUILD_BUILDNUMBER).$(SYSTEM_JOBATTEMPT)</HelixBuild>
30+
<HelixBuild>$(BUILD_BUILDNUMBER).$(TargetArchitecture).$(SYSTEM_JOBATTEMPT)</HelixBuild>
3131
<WaitForWorkItemCompletion>true</WaitForWorkItemCompletion>
3232
<EnableAzurePipelinesReporter>true</EnableAzurePipelinesReporter>
3333
<FailOnMissionControlTestFailure>true</FailOnMissionControlTestFailure>

eng/targets/Helix.Common.props

+14-3
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@
1010
<HelixAvailablePlatform Include="Windows" />
1111
<HelixAvailablePlatform Include="OSX" />
1212
<HelixAvailablePlatform Include="Linux" />
13-
13+
</ItemGroup>
14+
15+
<!-- x64 queues -->
16+
<ItemGroup Condition="'$(IsWindowsOnlyTest)' != 'true' AND '$(TargetArchitecture)' == 'x64'">
1417
<HelixAvailableTargetQueue Include="Windows.10.Amd64.ClientRS4.VS2017.Open" Platform="Windows" />
1518
<HelixAvailableTargetQueue Include="Windows.81.Amd64.Open" Platform="Windows" />
1619
<HelixAvailableTargetQueue Include="Windows.7.Amd64.Open" Platform="Windows" />
@@ -23,8 +26,16 @@
2326
<HelixAvailableTargetQueue Include="Debian.9.Amd64.Open" Platform="Linux" />
2427
<HelixAvailableTargetQueue Include="Redhat.7.Amd64.Open" Platform="Linux" />
2528
<HelixAvailableTargetQueue Include="(Fedora.28.Amd64.Open)Ubuntu.1604.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-28-helix-09ca40b-20190508143249" Platform="Linux" />
26-
27-
<!-- TODO: re-enable Debian.9.Arm64.Open and Ubuntu.1804.Arm64.Open -->
29+
</ItemGroup>
30+
31+
<ItemGroup Condition="'$(IsWindowsOnlyTest)' != 'true' AND '$(TargetArchitecture)' == 'arm64'">
32+
<!-- arm64 queues -->
33+
<HelixAvailableTargetQueue Include="(Debian.9.Arm64.Open)Ubuntu.1604.Arm64.Docker.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm64v8-0a0ebdd-20190312215438" Platform="Linux" />
34+
35+
<!-- Need to resolve permission issues on this docker queue
36+
<HelixAvailableTargetQueue Include="(Alpine.38.Arm64)Ubuntu.1604.Arm64.Docker@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.8-helix-arm64v8-46e69dd-20190327215724" Platform="Linux" />
37+
<HelixAvailableTargetQueue Include="(Ubuntu-1804.Arm64.Open)Ubuntu.1604.Arm64.Docker.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm64v8-6f28fa9-20190606004102" Platform="Linux" />
38+
-->
2839
</ItemGroup>
2940

3041
<ItemGroup Condition="'$(IsWindowsOnlyTest)' == 'true'">

eng/targets/Helix.props

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
</ItemGroup>
3838

3939
<ItemGroup Condition="'$(TestDependsOnNode)' == 'true' AND '$(IsWindowsHelixQueue)' == 'false'">
40-
<HelixPreCommand Include="./installnode.sh $(NodeVersion)" />
40+
<HelixPreCommand Include="./installnode.sh $(NodeVersion) $(TargetArchitecture)" />
4141
</ItemGroup>
4242

4343
<ItemGroup Condition="'$(TestDependsOnNode)' == 'true' AND '$(IsWindowsHelixQueue)' == 'true'">

eng/targets/Helix.targets

+3-3
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ Usage: dotnet msbuild /t:Helix src/MyTestProject.csproj
4949

5050
<PropertyGroup>
5151
<BuildHelixPayload Condition="'@(_HelixApplicableTargetQueue->Count())' == '0'">false</BuildHelixPayload>
52+
<BuildHelixPayload Condition="'$(TargetArchitecture)' == 'arm64' AND '$(SkipHelixArm)' == 'true'">false</BuildHelixPayload>
5253
</PropertyGroup>
53-
5454
</Target>
5555

5656
<Target Name="_PublishHelixArchive" DependsOnTargets="Publish" >
@@ -78,8 +78,8 @@ Usage: dotnet msbuild /t:Helix src/MyTestProject.csproj
7878
<TestAssembly>$(TargetFileName)</TestAssembly>
7979
<PreCommands>@(HelixPreCommand)</PreCommands>
8080
<PostCommands>@(HelixPostCommand)</PostCommands>
81-
<Command Condition="$(IsWindowsHelixQueue)">call runtests.cmd $(TargetFileName) $(TargetFrameworkIdentifier) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue)</Command>
82-
<Command Condition="!$(IsWindowsHelixQueue)">./runtests.sh $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue)</Command>
81+
<Command Condition="$(IsWindowsHelixQueue)">call runtests.cmd $(TargetFileName) $(TargetFrameworkIdentifier) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture)</Command>
82+
<Command Condition="!$(IsWindowsHelixQueue)">./runtests.sh $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture)</Command>
8383
<Timeout>$(HelixTimeout)</Timeout>
8484
</HelixWorkItem>
8585
</ItemGroup>

src/Azure/AzureAD/test/FunctionalTests/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests.csproj

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
<PropertyGroup>
44
<TargetFramework>netcoreapp3.0</TargetFramework>
5+
<!-- Test asset publishing not working on arm64 https://github.com/aspnet/AspNetCore/issues/11205 -->
6+
<SkipHelixArm>true</SkipHelixArm>
57
</PropertyGroup>
68

79
<ItemGroup>

src/Identity/test/Identity.FunctionalTests/Microsoft.AspNetCore.Identity.FunctionalTests.csproj

+5-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@
22

33
<PropertyGroup>
44
<TargetFramework>netcoreapp3.0</TargetFramework>
5-
</PropertyGroup>
5+
<!-- Test asset publishing not working on arm64 https://github.com/aspnet/AspNetCore/issues/11205 -->
6+
<SkipHelixArm>true</SkipHelixArm>
7+
</PropertyGroup>
68

79
<ItemGroup>
10+
811
<Compile Include="..\..\Extensions.Core\src\Base32.cs" Link="Infrastructure\Base32.cs" />
912
<Compile Include="..\..\Extensions.Core\src\Rfc6238AuthenticationService.cs" Link="Infrastructure\Rfc6238AuthenticationService.cs" />
1013
</ItemGroup>
@@ -46,7 +49,7 @@
4649
File="$(PublishDir)\contentroot.sln"
4750
Lines="Ignored"
4851
Overwrite="true"
49-
Encoding="Unicode"/>
52+
Encoding="Unicode" />
5053
</Target>
5154

5255
</Project>

src/Security/test/AuthSamples.FunctionalTests/AuthSamples.FunctionalTests.csproj

+5-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
<TargetFramework>netcoreapp3.0</TargetFramework>
55
<IsSampleProject>false</IsSampleProject>
66
<PlatformTarget>AnyCPU</PlatformTarget>
7+
<!-- Test asset publishing not working on arm64 https://github.com/aspnet/AspNetCore/issues/11205 -->
8+
<SkipHelixArm>true</SkipHelixArm>
79
</PropertyGroup>
810

911
<Import Project="$(MvcTestingTargets)" Condition="'$(MvcTestingTargets)' != ''" />
@@ -52,7 +54,7 @@
5254
DestinationFolder="$(PublishDir)\ClaimsTransformation\wwwroot" />
5355
<Copy
5456
SourceFiles="@(_cookiesWwwrootFiles)"
55-
DestinationFolder="$(PublishDir)\Cookies\wwwroot" />
57+
DestinationFolder="$(PublishDir)\Cookies\wwwroot" />
5658
<Copy
5759
SourceFiles="@(_customProviderFiles)"
5860
DestinationFolder="$(PublishDir)\CustomPolicyProvider\\%(RecursiveDir)" />
@@ -68,12 +70,13 @@
6870
<Copy
6971
SourceFiles="@(_staticFiles)"
7072
DestinationFolder="$(PublishDir)\StaticFilesAuth\\%(RecursiveDir)" />
73+
7174
<!-- Drop a dummy sln to specify content root location -->
7275
<WriteLinesToFile
7376
File="$(PublishDir)\contentroot.sln"
7477
Lines="Ignored"
7578
Overwrite="true"
76-
Encoding="Unicode"/>
79+
Encoding="Unicode" />
7780
</Target>
7881

7982
</Project>

0 commit comments

Comments
 (0)