[Helix] run on arm queues (#11422)

This commit is contained in:
Hao Kung 2019-06-30 01:04:53 -07:00 committed by GitHub
parent 2f2d1e6e3d
commit 6dc65b1673
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 62 additions and 20 deletions

View File

@ -10,8 +10,8 @@ pr:
jobs:
- template: jobs/default-build.yml
parameters:
jobName: Helix
jobDisplayName: 'Tests: Helix'
jobName: Helix_x64
jobDisplayName: 'Tests: Helix x64'
agentOs: Windows
timeoutInMinutes: 240
steps:
@ -25,3 +25,23 @@ jobs:
- name: Helix_logs
path: artifacts/log/
publishOnError: true
# Build Helix ARM64
- template: jobs/default-build.yml
parameters:
jobName: Helix_arm64
jobDisplayName: "Tests: Helix ARM64"
agentOs: Linux
timeoutInMinutes: 240
steps:
- script: ./restore.sh -ci
displayName: Restore
- 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
displayName: Run build.sh helix arm64 target
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops
installNodeJs: false
artifacts:
- name: Helix_arm64_logs
path: artifacts/logs/
publishOnError: true

View File

@ -9,16 +9,18 @@ if type -P "node" &>/dev/null; then
fi
node_version=$1
arch=$2
osname=`uname -s`
echo $osname
if [ "$osname" = "Darwin" ]; then
platformarch='darwin-x64'
platformarch="darwin-$arch"
else
platformarch='linux-x64'
platformarch="linux-$arch"
fi
echo "PlatformArch: $platformarch"
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
output_dir="$DIR/node"
url="http://nodejs.org/dist/v$node_version/node-v$node_version-$platformarch.tar.gz"
echo "Downloading from: $url"
tmp="$(mktemp -d -t install-node.XXXXXX)"
trap "rm -rf $tmp" EXIT
cd "$tmp"

View File

@ -7,17 +7,18 @@ set targetFrameworkIdentifier=%2
set sdkVersion=%3
set runtimeVersion=%4
set helixQueue=%5
set arch=%6
set DOTNET_HOME=%HELIX_CORRELATION_PAYLOAD%\sdk
set DOTNET_ROOT=%DOTNET_HOME%\x64
set DOTNET_ROOT=%DOTNET_HOME%\%arch%
set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
set DOTNET_MULTILEVEL_LOOKUP=0
set DOTNET_CLI_HOME=%HELIX_CORRELATION_PAYLOAD%\home
set PATH=%DOTNET_ROOT%;%PATH%;%HELIX_CORRELATION_PAYLOAD%\node\bin
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%"
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%"
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%"
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%"
set HELIX=%helixQueue%

View File

@ -27,7 +27,7 @@
<PropertyGroup Condition=" '$(ContinuousIntegrationBuild)' == 'true' ">
<HelixType>ci</HelixType>
<Creator>aspnetcore</Creator>
<HelixBuild>$(BUILD_BUILDNUMBER).$(SYSTEM_JOBATTEMPT)</HelixBuild>
<HelixBuild>$(BUILD_BUILDNUMBER).$(TargetArchitecture).$(SYSTEM_JOBATTEMPT)</HelixBuild>
<WaitForWorkItemCompletion>true</WaitForWorkItemCompletion>
<EnableAzurePipelinesReporter>true</EnableAzurePipelinesReporter>
<FailOnMissionControlTestFailure>true</FailOnMissionControlTestFailure>

View File

@ -10,7 +10,10 @@
<HelixAvailablePlatform Include="Windows" />
<HelixAvailablePlatform Include="OSX" />
<HelixAvailablePlatform Include="Linux" />
</ItemGroup>
<!-- x64 queues -->
<ItemGroup Condition="'$(IsWindowsOnlyTest)' != 'true' AND '$(TargetArchitecture)' == 'x64'">
<HelixAvailableTargetQueue Include="Windows.10.Amd64.ClientRS4.VS2017.Open" Platform="Windows" />
<HelixAvailableTargetQueue Include="Windows.81.Amd64.Open" Platform="Windows" />
<HelixAvailableTargetQueue Include="Windows.7.Amd64.Open" Platform="Windows" />
@ -23,8 +26,16 @@
<HelixAvailableTargetQueue Include="Debian.9.Amd64.Open" Platform="Linux" />
<HelixAvailableTargetQueue Include="Redhat.7.Amd64.Open" Platform="Linux" />
<HelixAvailableTargetQueue Include="(Fedora.28.Amd64.Open)Ubuntu.1604.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-28-helix-09ca40b-20190508143249" Platform="Linux" />
<!-- TODO: re-enable Debian.9.Arm64.Open and Ubuntu.1804.Arm64.Open -->
</ItemGroup>
<ItemGroup Condition="'$(IsWindowsOnlyTest)' != 'true' AND '$(TargetArchitecture)' == 'arm64'">
<!-- arm64 queues -->
<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" />
<!-- Need to resolve permission issues on this docker queue
<HelixAvailableTargetQueue Include="(Alpine.38.Arm64)Ubuntu.1604.Arm64.Docker@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.8-helix-arm64v8-46e69dd-20190327215724" Platform="Linux" />
<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" />
-->
</ItemGroup>
<ItemGroup Condition="'$(IsWindowsOnlyTest)' == 'true'">

View File

@ -37,7 +37,7 @@
</ItemGroup>
<ItemGroup Condition="'$(TestDependsOnNode)' == 'true' AND '$(IsWindowsHelixQueue)' == 'false'">
<HelixPreCommand Include="./installnode.sh $(NodeVersion)" />
<HelixPreCommand Include="./installnode.sh $(NodeVersion) $(TargetArchitecture)" />
</ItemGroup>
<ItemGroup Condition="'$(TestDependsOnNode)' == 'true' AND '$(IsWindowsHelixQueue)' == 'true'">

View File

@ -49,8 +49,8 @@ Usage: dotnet msbuild /t:Helix src/MyTestProject.csproj
<PropertyGroup>
<BuildHelixPayload Condition="'@(_HelixApplicableTargetQueue->Count())' == '0'">false</BuildHelixPayload>
<BuildHelixPayload Condition="'$(TargetArchitecture)' == 'arm64' AND '$(SkipHelixArm)' == 'true'">false</BuildHelixPayload>
</PropertyGroup>
</Target>
<Target Name="_PublishHelixArchive" DependsOnTargets="Publish" >
@ -78,8 +78,8 @@ Usage: dotnet msbuild /t:Helix src/MyTestProject.csproj
<TestAssembly>$(TargetFileName)</TestAssembly>
<PreCommands>@(HelixPreCommand)</PreCommands>
<PostCommands>@(HelixPostCommand)</PostCommands>
<Command Condition="$(IsWindowsHelixQueue)">call runtests.cmd $(TargetFileName) $(TargetFrameworkIdentifier) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue)</Command>
<Command Condition="!$(IsWindowsHelixQueue)">./runtests.sh $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue)</Command>
<Command Condition="$(IsWindowsHelixQueue)">call runtests.cmd $(TargetFileName) $(TargetFrameworkIdentifier) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture)</Command>
<Command Condition="!$(IsWindowsHelixQueue)">./runtests.sh $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppRuntimeVersion) $(_HelixFriendlyNameTargetQueue) $(TargetArchitecture)</Command>
<Timeout>$(HelixTimeout)</Timeout>
</HelixWorkItem>
</ItemGroup>

View File

@ -2,6 +2,8 @@
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<!-- Test asset publishing not working on arm64 https://github.com/aspnet/AspNetCore/issues/11205 -->
<SkipHelixArm>true</SkipHelixArm>
</PropertyGroup>
<ItemGroup>

View File

@ -2,9 +2,12 @@
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<!-- Test asset publishing not working on arm64 https://github.com/aspnet/AspNetCore/issues/11205 -->
<SkipHelixArm>true</SkipHelixArm>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\..\Extensions.Core\src\Base32.cs" Link="Infrastructure\Base32.cs" />
<Compile Include="..\..\Extensions.Core\src\Rfc6238AuthenticationService.cs" Link="Infrastructure\Rfc6238AuthenticationService.cs" />
</ItemGroup>
@ -46,7 +49,7 @@
File="$(PublishDir)\contentroot.sln"
Lines="Ignored"
Overwrite="true"
Encoding="Unicode"/>
Encoding="Unicode" />
</Target>
</Project>

View File

@ -4,6 +4,8 @@
<TargetFramework>netcoreapp3.0</TargetFramework>
<IsSampleProject>false</IsSampleProject>
<PlatformTarget>AnyCPU</PlatformTarget>
<!-- Test asset publishing not working on arm64 https://github.com/aspnet/AspNetCore/issues/11205 -->
<SkipHelixArm>true</SkipHelixArm>
</PropertyGroup>
<Import Project="$(MvcTestingTargets)" Condition="'$(MvcTestingTargets)' != ''" />
@ -52,7 +54,7 @@
DestinationFolder="$(PublishDir)\ClaimsTransformation\wwwroot" />
<Copy
SourceFiles="@(_cookiesWwwrootFiles)"
DestinationFolder="$(PublishDir)\Cookies\wwwroot" />
DestinationFolder="$(PublishDir)\Cookies\wwwroot" />
<Copy
SourceFiles="@(_customProviderFiles)"
DestinationFolder="$(PublishDir)\CustomPolicyProvider\\%(RecursiveDir)" />
@ -68,12 +70,13 @@
<Copy
SourceFiles="@(_staticFiles)"
DestinationFolder="$(PublishDir)\StaticFilesAuth\\%(RecursiveDir)" />
<!-- Drop a dummy sln to specify content root location -->
<WriteLinesToFile
File="$(PublishDir)\contentroot.sln"
Lines="Ignored"
Overwrite="true"
Encoding="Unicode"/>
Encoding="Unicode" />
</Target>
</Project>