diff --git a/eng/Helix.CrossTarget.targets b/eng/Helix.CrossTarget.targets new file mode 100644 index 00000000000..66bc48b89d5 --- /dev/null +++ b/eng/Helix.CrossTarget.targets @@ -0,0 +1,16 @@ + + + + <_TargetFrameworks Remove="@(_TargetFrameworks)" /> + <_TargetFrameworks Include="$(TargetFrameworks)" /> + + + + + + diff --git a/eng/Helix.SingleTarget.targets b/eng/Helix.SingleTarget.targets new file mode 100644 index 00000000000..e034e6b9260 --- /dev/null +++ b/eng/Helix.SingleTarget.targets @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/eng/Helix.props b/eng/Helix.props new file mode 100644 index 00000000000..40c64d43196 --- /dev/null +++ b/eng/Helix.props @@ -0,0 +1,6 @@ + + + true + false + + diff --git a/eng/Helix.targets b/eng/Helix.targets new file mode 100644 index 00000000000..8d82ef7cc69 --- /dev/null +++ b/eng/Helix.targets @@ -0,0 +1,8 @@ + + + + + diff --git a/eng/helix/Helix.proj b/eng/helix/Helix.proj new file mode 100644 index 00000000000..6f17013f02f --- /dev/null +++ b/eng/helix/Helix.proj @@ -0,0 +1,164 @@ + + + + $(Configuration) + $(BuildArch) + true + false + + $(PackageRid) + + + + .open + + $(USERNAME) + $(USER) + + + + pr + pr + official + + + + pr + $(HelixSourcePrefix)/dotnet/dotnet-monitor + $(HelixSource)/$(BUILD_SOURCEBRANCH) + test/binaries/ + + + + + Platform=$(HelixArchitecture) + + + + + + + + + + Windows 11 $(HelixArchitecture) $(HelixConfiguration) + + + + Windows 10 $(HelixArchitecture) $(HelixConfiguration) + + + + + Windows 10 $(HelixArchitecture) $(HelixConfiguration) + + + + + + + + Debian 11 $(HelixArchitecture) $(HelixConfiguration) + + + Ubuntu 18.04 $(HelixArchitecture) $(HelixConfiguration) + + + + Debian 11 $(HelixArchitecture) $(HelixConfiguration) + + + Mariner 2.0 $(HelixArchitecture) $(HelixConfiguration) + + + Ubuntu 18.04 $(HelixArchitecture) $(HelixConfiguration) + + + + + + + + Alpine 3.15 $(HelixArchitecture) $(HelixConfiguration) + + + + Alpine 3.15 $(HelixArchitecture) $(HelixConfiguration) + + + + + + + + OSX 13 $(HelixArchitecture) $(HelixConfiguration) + + + + OSX 13 $(HelixArchitecture) $(HelixConfiguration) + + + + + + %(AdditionalProperties);Configuration=$(HelixConfiguration) + + + + + + true + sdk + $(MicrosoftDotnetSdkInternalVersion) + + + + + + aspnetcore-runtime + + + aspnetcore-runtime + + + aspnetcore-runtime + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eng/helix/payload/dotnettest.cmd b/eng/helix/payload/dotnettest.cmd new file mode 100644 index 00000000000..5a62c203585 --- /dev/null +++ b/eng/helix/payload/dotnettest.cmd @@ -0,0 +1,34 @@ +@echo off +setlocal + +set testAssembly=%1 +set configuration=%2 +set targetFramework=%3 +set architecture=%~4 +set timeoutMinutes=%~5 + +set filterArgs= +if not "%~6" == "" ( + set filterArgs=--filter ^"%~6^" +) + +set exit_code=0 + +echo "Start tests..." + +dotnet.exe test ^ + "%HELIX_CORRELATION_PAYLOAD%\%testAssembly%\%configuration%\%targetFramework%\%testAssembly%.dll" ^ + --logger:"console;verbosity=normal" ^ + --logger:"trx;LogFileName=%testAssembly%_%targetFramework%_%architecture%.trx" ^ + --logger:"html;LogFileName=%testAssembly%_%targetFramework%_%architecture%.html" ^ + --ResultsDirectory:%HELIX_WORKITEM_UPLOAD_ROOT% ^ + --blame "CollectHangDump;TestTimeout=%timeoutMinutes%m" ^ + %filterArgs% + +if not errorlevel 0 ( + set exit_code=%errorlevel% +) + +echo "Finished tests; exit code: %exit_code%" + +exit /b %exit_code% \ No newline at end of file diff --git a/eng/helix/payload/dotnettest.sh b/eng/helix/payload/dotnettest.sh new file mode 100755 index 00000000000..b78d0efb45c --- /dev/null +++ b/eng/helix/payload/dotnettest.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +testAssembly="$1" +configuration="$2" +targetFramework="$3" +architecture="$4" +timeoutMinutes="$5" + +filterArgs="" +if [[ ! -z "$6" ]]; then + filterArgs="--filter \"$6\"" +fi + +exit_code=0 + +echo "Start tests..." + +dotnet test \ + "$HELIX_CORRELATION_PAYLOAD/$testAssembly/$configuration/$targetFramework/$testAssembly.dll" \ + --logger:"console;verbosity=normal" \ + --logger:"trx;LogFileName=${testAssembly}_${targetFramework}_${architecture}.trx" \ + --logger:"html;LogFileName=${testAssembly}_${targetFramework}_${architecture}.html" \ + --ResultsDirectory:$HELIX_WORKITEM_UPLOAD_ROOT \ + --blame "CollectHangDump;TestTimeout=${timeoutMinutes}m" \ + $filterArgs + +exit_code=$? + +echo "Finished tests; exit code: $exit_code" + +exit $exit_code diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 5604afb705f..379e69cfb1a 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -26,13 +26,15 @@ - --blame "CollectHangDump;TestTimeout=15m" + 15 + --blame "CollectHangDump;TestTimeout=$(TestRunnerTestTimeoutMinutes)m" - $(TestRunnerAdditionalArguments) --filter "TargetFrameworkMoniker=Net80" + TargetFrameworkMoniker=Net80 + $(TestRunnerAdditionalArguments) --filter "$(TestRunnerFilterArguments)" @@ -62,5 +64,6 @@ + diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets index 7835a5a36d4..d01c1c8ddca 100644 --- a/src/Directory.Build.targets +++ b/src/Directory.Build.targets @@ -2,6 +2,8 @@ + + diff --git a/src/Tests/Directory.Build.targets b/src/Tests/Directory.Build.targets index cabc57929c0..546017f7f57 100644 --- a/src/Tests/Directory.Build.targets +++ b/src/Tests/Directory.Build.targets @@ -16,4 +16,5 @@ + diff --git a/src/Tests/Helix.targets b/src/Tests/Helix.targets new file mode 100644 index 00000000000..86c75cae1aa --- /dev/null +++ b/src/Tests/Helix.targets @@ -0,0 +1,19 @@ + + + $(TargetName) $(Configuration) $(TargetFramework) $(Platform) $(TestRunnerTestTimeoutMinutes) $(TestRunnerFilterArguments) + call %HELIX_CORRELATION_PAYLOAD%\dotnettest.cmd $(HelixDotnetTestArgs) + $HELIX_CORRELATION_PAYLOAD/dotnettest.sh $(HelixDotnetTestArgs) + + $([MSBuild]::Add($(TestRunnerTestTimeoutMinutes), 10)) + + + + + + @(HelixWorkItemPreCommand) + $(HelixDotnetTestCommand) + @(HelixWorkItemPostCommand) + 00:$(HelixTimeoutMinutes):00 + + + \ No newline at end of file