Skip to content

[Helix] run on arm queues #11422

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 44 commits into from
Jun 30, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
9f75bb9
merge from helix-arm
HaoK Jun 20, 2019
cec9b2a
Try fixing arch checks
HaoK Jun 20, 2019
cbc7697
Fix build stuff
HaoK Jun 20, 2019
c0895f1
More fixes
HaoK Jun 20, 2019
4203b8d
Update helix-test.yml
HaoK Jun 21, 2019
39612db
Update helix-test.yml
HaoK Jun 21, 2019
e3bd441
Update Helix.Common.props
HaoK Jun 21, 2019
e9f2136
Update helix-test.yml
HaoK Jun 21, 2019
3496689
Update helix-test.yml
HaoK Jun 22, 2019
c7828af
Update helix-test.yml
HaoK Jun 22, 2019
c1a4311
Update helix-test.yml
HaoK Jun 24, 2019
2ffeb1f
Update helix-test.yml
HaoK Jun 24, 2019
e494bb3
Update helix-test.yml
HaoK Jun 24, 2019
d313a8c
Update helix-test.yml
HaoK Jun 24, 2019
0ea0ef4
Update helix-test.yml
HaoK Jun 24, 2019
3dc3720
Update installnode.sh
HaoK Jun 25, 2019
bfd8063
Update Helix.props
HaoK Jun 25, 2019
bd1f0df
Update Helix.props
HaoK Jun 25, 2019
19a9746
Update installnode.sh
HaoK Jun 25, 2019
06845fe
Reenable iis helix queue
HaoK Jun 25, 2019
ede2b62
Update Helix.targets
HaoK Jun 26, 2019
c613477
Update Helix.Common.props
HaoK Jun 26, 2019
6fbe097
Update Helix.targets
HaoK Jun 26, 2019
49eda8d
Update Helix.targets
HaoK Jun 26, 2019
573a323
Update Helix.Common.props
HaoK Jun 26, 2019
023829d
Update AuthSamples.FunctionalTests.csproj
HaoK Jun 26, 2019
d12011b
Update Microsoft.AspNetCore.Identity.FunctionalTests.csproj
HaoK Jun 26, 2019
237144f
Update Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests.cs…
HaoK Jun 26, 2019
b56ac48
Update Helix.targets
HaoK Jun 26, 2019
79397c6
Update AuthSamples.FunctionalTests.csproj
HaoK Jun 26, 2019
2ae8ed5
Update Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests.cs…
HaoK Jun 27, 2019
aaced75
Update Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests.cs…
HaoK Jun 27, 2019
178a503
Update Microsoft.AspNetCore.Identity.FunctionalTests.csproj
HaoK Jun 27, 2019
30eb656
Update Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests.cs…
HaoK Jun 27, 2019
5c030cb
Update Microsoft.AspNetCore.Identity.FunctionalTests.csproj
HaoK Jun 27, 2019
cdfbff6
Update AuthSamples.FunctionalTests.csproj
HaoK Jun 27, 2019
6260ee7
Update Helix.targets
HaoK Jun 27, 2019
320a634
Update Helix.props
HaoK Jun 27, 2019
82e554d
Update Helix.Common.props
HaoK Jun 27, 2019
3226d6d
Update Helix.Common.props
HaoK Jun 27, 2019
83ed3b1
Update Helix.Common.props
HaoK Jun 30, 2019
188cd5a
Update Microsoft.AspNetCore.Identity.FunctionalTests.csproj
HaoK Jun 30, 2019
c23ee0f
Update Microsoft.AspNetCore.Identity.FunctionalTests.csproj
HaoK Jun 30, 2019
75e47f3
Update AuthSamples.FunctionalTests.csproj
HaoK Jun 30, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 22 additions & 2 deletions .azure/pipelines/helix-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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
8 changes: 5 additions & 3 deletions eng/helix/content/installnode.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
7 changes: 4 additions & 3 deletions eng/helix/content/runtests.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -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%

Expand Down
2 changes: 1 addition & 1 deletion eng/helix/helix.proj
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
17 changes: 14 additions & 3 deletions eng/targets/Helix.Common.props
Original file line number Diff line number Diff line change
Expand Up @@ -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" />
Expand All @@ -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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we have an issue tracking this TODO?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

<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'">
Expand Down
2 changes: 1 addition & 1 deletion eng/targets/Helix.props
Original file line number Diff line number Diff line change
Expand Up @@ -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'">
Expand Down
6 changes: 3 additions & 3 deletions eng/targets/Helix.targets
Original file line number Diff line number Diff line change
Expand Up @@ -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" >
Expand Down Expand Up @@ -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>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down Expand Up @@ -46,7 +49,7 @@
File="$(PublishDir)\contentroot.sln"
Lines="Ignored"
Overwrite="true"
Encoding="Unicode"/>
Encoding="Unicode" />
</Target>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -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)' != ''" />
Expand Down Expand Up @@ -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)" />
Expand All @@ -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>