Add helix-matrix.yml and windows arm 64 helix queue (#22002)
This commit is contained in:
parent
f17fcfd3c8
commit
a806ae62c3
|
|
@ -646,54 +646,6 @@ stages:
|
|||
publishOnError: true
|
||||
includeForks: true
|
||||
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
condition: notin(variables['Build.Reason'], 'PullRequest')
|
||||
jobName: Helix_x64_daily
|
||||
jobDisplayName: 'Tests: Helix x64 Daily'
|
||||
agentOs: Windows
|
||||
timeoutInMinutes: 180
|
||||
steps:
|
||||
# Build the shared framework
|
||||
- script: ./build.cmd -ci -nobl -all -pack -arch x64 /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
||||
displayName: Build shared fx
|
||||
- script: .\restore.cmd -ci -nobl /p:BuildInteropProjects=true
|
||||
displayName: Restore interop projects
|
||||
- script: .\build.cmd -ci -nobl -NoRestore -test -all -projects eng\helix\helix.proj /p:IsHelixJob=true /p:IsHelixDaily=true /p:BuildInteropProjects=true /p:RunTemplateTests=true /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
||||
displayName: Run build.cmd helix target
|
||||
env:
|
||||
HelixApiAccessToken: $(HelixApiAccessToken) # Needed for internal queues
|
||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops
|
||||
artifacts:
|
||||
- name: Helix_logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
||||
# Helix ARM64
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
condition: and(eq(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'))
|
||||
jobName: Helix_arm64_daily
|
||||
jobDisplayName: "Tests: Helix ARM64 Daily"
|
||||
agentOs: Linux
|
||||
timeoutInMinutes: 180
|
||||
steps:
|
||||
# Build the shared framework
|
||||
- script: ./restore.sh -ci -nobl
|
||||
displayName: Restore
|
||||
- script: ./build.sh -ci --nobl --arch arm64 -test --no-build-nodejs --all -projects $(Build.SourcesDirectory)/eng/helix/helix.proj /p:IsHelixJob=true /p:IsHelixDaily=true /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
||||
displayName: Run build.sh helix arm64 target
|
||||
env:
|
||||
HelixApiAccessToken: $(HelixApiAccessToken) # Needed for internal queues
|
||||
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/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
||||
# Source build
|
||||
- job: Source_Build
|
||||
displayName: 'Test: Linux Source Build'
|
||||
|
|
|
|||
|
|
@ -0,0 +1,63 @@
|
|||
# We only want to run full helix matrix on master
|
||||
pr: none
|
||||
trigger: none
|
||||
schedules:
|
||||
- cron: "0 */12 * * *"
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
always: true
|
||||
|
||||
variables:
|
||||
- ${{ if ne(variables['System.TeamProject'], 'internal') }}:
|
||||
- name: _UseHelixOpenQueues
|
||||
value: 'true'
|
||||
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
- group: DotNet-HelixApi-Access
|
||||
- name: _UseHelixOpenQueues
|
||||
value: 'false'
|
||||
|
||||
jobs:
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
jobName: Helix_matrix_x64
|
||||
jobDisplayName: 'Tests: Helix full matrix x64'
|
||||
agentOs: Windows
|
||||
timeoutInMinutes: 240
|
||||
steps:
|
||||
# Build the shared framework
|
||||
- script: ./build.cmd -ci -nobl -all -pack -arch x64 /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
||||
displayName: Build shared fx
|
||||
- script: .\restore.cmd -ci /p:BuildInteropProjects=true
|
||||
displayName: Restore interop projects
|
||||
- script: .\build.cmd -ci -nobl -NoRestore -test -noBuildJava -all -projects eng\helix\helix.proj /p:IsHelixDaily=true /p:IsRequiredCheck=true /p:IsHelixJob=true /p:BuildInteropProjects=true /p:RunTemplateTests=true /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
||||
displayName: Run build.cmd helix target
|
||||
env:
|
||||
HelixApiAccessToken: $(HelixApiAccessToken) # Needed for internal queues
|
||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops
|
||||
artifacts:
|
||||
- name: Helix_logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
|
||||
# Helix ARM64
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
jobName: Helix_matrix_arm64
|
||||
jobDisplayName: "Tests: Helix ARM64 matrix"
|
||||
agentOs: Linux
|
||||
timeoutInMinutes: 180
|
||||
steps:
|
||||
- script: ./restore.sh -ci -nobl
|
||||
displayName: Restore
|
||||
- script: ./build.sh -ci --nobl --arch arm64 -test --no-build-nodejs --all -projects $(Build.SourcesDirectory)/eng/helix/helix.proj /p:IsHelixJob=true /p:IsHelixDaily=true /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
||||
displayName: Run build.sh helix arm64 target
|
||||
env:
|
||||
HelixApiAccessToken: $(HelixApiAccessToken) # Needed for internal queues
|
||||
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/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
|
@ -309,6 +309,11 @@ namespace RunTests
|
|||
}
|
||||
|
||||
var HELIX_WORKITEM_UPLOAD_ROOT = Environment.GetEnvironmentVariable("HELIX_WORKITEM_UPLOAD_ROOT");
|
||||
if (string.IsNullOrEmpty(HELIX_WORKITEM_UPLOAD_ROOT))
|
||||
{
|
||||
Console.WriteLine("No HELIX_WORKITEM_UPLOAD_ROOT specified, skipping log copy");
|
||||
return;
|
||||
}
|
||||
Console.WriteLine($"Copying artifacts/log/ to {HELIX_WORKITEM_UPLOAD_ROOT}/");
|
||||
if (Directory.Exists("artifacts/log"))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -30,8 +30,8 @@ echo "Installing Runtime"
|
|||
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 exit_code=0
|
||||
echo "Restore: dotnet restore RunTests\RunTests.csproj --source https://api.nuget.org/v3/index.json --ignore-failed-sources..."
|
||||
dotnet restore RunTests\RunTests.csproj --source https://api.nuget.org/v3/index.json --ignore-failed-sources
|
||||
echo "Restore: dotnet restore RunTests\RunTests.csproj --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json --ignore-failed-sources..."
|
||||
dotnet restore RunTests\RunTests.csproj --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json --ignore-failed-sources
|
||||
|
||||
echo "Running tests: dotnet run --project RunTests\RunTests.csproj -- --target %$target% --sdk %$sdkVersion% --runtime %$runtimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --aspnetruntime %$aspnetruntime% --aspnetref %$aspnetref% --helixTimeout %$helixTimeout%..."
|
||||
dotnet run --project RunTests\RunTests.csproj -- --target %$target% --sdk %$sdkVersion% --runtime %$runtimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --ef %$ef% --aspnetruntime %$aspnetruntime% --aspnetref %$aspnetref% --helixTimeout %$helixTimeout%
|
||||
|
|
|
|||
|
|
@ -18,14 +18,14 @@
|
|||
<HelixPreCommand Include="call RunPowershell.cmd UpdateIISExpressCertificate.ps1 || exit /b 1" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- ubuntu and win10 required for green PR queues -->
|
||||
<!-- PR(ci.yaml) required queues -->
|
||||
<ItemGroup Condition="'$(IsRequiredCheck)' == 'true' AND '$(TargetArchitecture)' == 'x64'">
|
||||
<HelixAvailableTargetQueue Include="Ubuntu.1604.Amd64.Open" Platform="Linux" />
|
||||
<HelixAvailableTargetQueue Include="Windows.10.Amd64.Open" Platform="Windows" />
|
||||
<HelixAvailableTargetQueue Include="OSX.1014.Amd64.Open" Platform="Linux" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- daily scheduled only queues -->
|
||||
<!-- queues for helix-matrix.yml pipeline -->
|
||||
<ItemGroup Condition="'$(IsWindowsOnlyTest)' != 'true' AND '$(TargetArchitecture)' == 'x64' AND '$(IsHelixDaily)' == 'true'">
|
||||
<HelixAvailableTargetQueue Include="Windows.7.Amd64.Open" Platform="Windows" />
|
||||
<HelixAvailableTargetQueue Include="Windows.81.Amd64.Open" Platform="Windows" />
|
||||
|
|
@ -37,13 +37,9 @@
|
|||
<HelixAvailableTargetQueue Include="(Fedora.28.Amd64.Open)Ubuntu.1604.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-28-helix-09ca40b-20190508143249" Platform="Linux" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- arm64 queues for helix-matrix.yml pipeline -->
|
||||
<ItemGroup Condition="'$(IsWindowsOnlyTest)' != 'true' AND '$(TargetArchitecture)' == 'arm64' AND '$(IsHelixDaily)' == 'true' AND '$(RunQuarantinedTests)' != 'true'">
|
||||
<!-- arm64 queues -->
|
||||
<HelixAvailableTargetQueue Include="Windows.10.Arm64.Open" Platform="Windows" />
|
||||
<HelixAvailableTargetQueue Include="(Debian.9.Arm64.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm64v8-a12566d-20190807161036" 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>
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<HelixPreCommand Condition="'$(IsWindowsHelixQueue)' != 'true' AND '$(IsMacHelixQueue)' != 'true'" Include="./installjdk.sh 10.0.2 x64 && if [ "%24JAVA_HOME" = "" ]%3B then export JAVA_HOME=%24PWD/java%3B fi" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(TestDependsOnMssql)' == 'true' AND '$(IsWindowsHelixQueue)' == 'true'">
|
||||
<ItemGroup Condition="'$(TestDependsOnMssql)' == 'true' AND '$(IsWindowsHelixQueue)' == 'true' AND '$(TargetArchitecture)' != 'arm64'">
|
||||
<HelixPreCommand Include="call RunPowershell.cmd mssql\InstallSqlServerLocalDB.ps1 || exit /b 1" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
@ -80,6 +80,7 @@ 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>
|
||||
<BuildHelixPayload Condition="$(SkipHelixQueues.Contains('$(HelixTargetQueue)'))">false</BuildHelixPayload>
|
||||
</PropertyGroup>
|
||||
</Target>
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@
|
|||
<!-- Avoid CS1705 errors due to mix of assemblies brought in transitively. -->
|
||||
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
|
||||
<Reference Include="Microsoft.Extensions.Logging.Abstractions" />
|
||||
|
||||
<Compile Include="$(SharedSourceRoot)test\SkipOnHelixAttribute.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
<ItemGroup>
|
||||
<Reference Include="Microsoft.AspNetCore.NodeServices" />
|
||||
<Reference Include="Microsoft.AspNetCore.TestHost" />
|
||||
<Compile Include="$(SharedSourceRoot)test\SkipOnHelixAttribute.cs" />
|
||||
<Content Include="js\**\*" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,12 +4,14 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Testing;
|
||||
using Microsoft.AspNetCore.NodeServices.HostingModels;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.AspNetCore.NodeServices
|
||||
{
|
||||
[SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/22084", Queues = "Windows.10.Arm64;Windows.10.Arm64.Open")]
|
||||
[Obsolete("Use Microsoft.AspNetCore.SpaServices.Extensions")]
|
||||
public class NodeServicesTest : IDisposable
|
||||
{
|
||||
|
|
@ -26,7 +28,7 @@ namespace Microsoft.AspNetCore.NodeServices
|
|||
_nodeServices = NodeServicesFactory.CreateNodeServices(options);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[ConditionalFact]
|
||||
public async Task CanGetSuccessResult()
|
||||
{
|
||||
// Act
|
||||
|
|
@ -38,7 +40,7 @@ namespace Microsoft.AspNetCore.NodeServices
|
|||
Assert.Equal("test result", result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[ConditionalFact]
|
||||
public async Task CanGetErrorResult()
|
||||
{
|
||||
// Act/Assert
|
||||
|
|
@ -49,7 +51,7 @@ namespace Microsoft.AspNetCore.NodeServices
|
|||
Assert.StartsWith("This is an error from Node", ex.Message);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[ConditionalFact]
|
||||
public async Task CanGetResultAsynchronously()
|
||||
{
|
||||
// Act
|
||||
|
|
@ -63,7 +65,7 @@ namespace Microsoft.AspNetCore.NodeServices
|
|||
Assert.Equal("delayed test result", result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[ConditionalFact]
|
||||
public async Task CanPassParameters()
|
||||
{
|
||||
// Act
|
||||
|
|
@ -77,7 +79,7 @@ namespace Microsoft.AspNetCore.NodeServices
|
|||
Assert.Equal("Param0: Hey; Param1: 123", result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[ConditionalFact]
|
||||
public async Task CanPassParametersWithCamelCaseNameConversion()
|
||||
{
|
||||
// Act
|
||||
|
|
@ -90,7 +92,7 @@ namespace Microsoft.AspNetCore.NodeServices
|
|||
Assert.Equal("Received: [{\"stringProp\":\"Abc\",\"intProp\":123,\"boolProp\":true}]", result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[ConditionalFact]
|
||||
public async Task CanReceiveComplexResultWithPascalCaseNameConversion()
|
||||
{
|
||||
// Act
|
||||
|
|
@ -104,7 +106,7 @@ namespace Microsoft.AspNetCore.NodeServices
|
|||
Assert.True(result.BoolProp);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[ConditionalFact]
|
||||
public async Task CanInvokeDefaultModuleExport()
|
||||
{
|
||||
// Act
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@
|
|||
<TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<ServerGarbageCollection>true</ServerGarbageCollection>
|
||||
<!-- https://github.com/dotnet/aspnetcore/issues/22114 -->
|
||||
<SkipHelixQueues>Windows.10.Arm64;Windows.10.Arm64.Open</SkipHelixQueues>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@
|
|||
<TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
|
||||
<ServerGarbageCollection>true</ServerGarbageCollection>
|
||||
<TestGroupName>Libuv.BindTests</TestGroupName>
|
||||
<!-- https://github.com/dotnet/aspnetcore/issues/22114 -->
|
||||
<SkipHelixQueues>Windows.10.Arm64;Windows.10.Arm64.Open</SkipHelixQueues>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@
|
|||
<ServerGarbageCollection>true</ServerGarbageCollection>
|
||||
<!-- Put this project into its own test group to avoid running parallel with other test projects. Libuv does not play nice with other test assemblies. -->
|
||||
<TestGroupName>Libuv.FunctionalTests</TestGroupName>
|
||||
<!-- https://github.com/dotnet/aspnetcore/issues/22114 -->
|
||||
<SkipHelixQueues>Windows.10.Arm64;Windows.10.Arm64.Open</SkipHelixQueues>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
|||
Loading…
Reference in New Issue