diff --git a/eng/helix/content/runtests.cmd b/eng/helix/content/runtests.cmd index 8fd9e85596ce..bbdac7d80453 100644 --- a/eng/helix/content/runtests.cmd +++ b/eng/helix/content/runtests.cmd @@ -9,6 +9,7 @@ set $arch=%4 set $quarantined=%5 set $helixTimeout=%6 set $installPlaywright=%7 +set $dotnetEfVersion=%8 REM Batch only supports up to 9 arguments using the %# syntax, need to shift to get more set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 @@ -24,8 +25,8 @@ echo. set exit_code=0 -echo "Running tests: dotnet %HELIX_CORRELATION_PAYLOAD%/HelixTestRunner/HelixTestRunner.dll --target %$target% --runtime %$aspRuntimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --helixTimeout %$helixTimeout% --playwright %$installPlaywright%" -dotnet %HELIX_CORRELATION_PAYLOAD%/HelixTestRunner/HelixTestRunner.dll --target %$target% --runtime %$aspRuntimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --helixTimeout %$helixTimeout% --playwright %$installPlaywright% +echo "Running tests: dotnet %HELIX_CORRELATION_PAYLOAD%/HelixTestRunner/HelixTestRunner.dll --target %$target% --runtime %$aspRuntimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --helixTimeout %$helixTimeout% --playwright %$installPlaywright% --dotnetEf %$dotnetEfVersion%" +dotnet %HELIX_CORRELATION_PAYLOAD%/HelixTestRunner/HelixTestRunner.dll --target %$target% --runtime %$aspRuntimeVersion% --queue %$queue% --arch %$arch% --quarantined %$quarantined% --helixTimeout %$helixTimeout% --playwright %$installPlaywright% --dotnetEf %$dotnetEfVersion% if not errorlevel 0 ( set exit_code=%errorlevel% ) diff --git a/eng/helix/content/runtests.sh b/eng/helix/content/runtests.sh index ba9ce79418ef..23f4229c2175 100644 --- a/eng/helix/content/runtests.sh +++ b/eng/helix/content/runtests.sh @@ -78,8 +78,8 @@ sync exit_code=0 -echo "Running tests: dotnet $HELIX_CORRELATION_PAYLOAD/HelixTestRunner/HelixTestRunner.dll --target $1 --runtime $2 --queue $helixQueue --arch $4 --quarantined $5 --helixTimeout $6 --playwright $installPlaywright" -dotnet $HELIX_CORRELATION_PAYLOAD/HelixTestRunner/HelixTestRunner.dll --target $1 --runtime $2 --queue $helixQueue --arch $4 --quarantined $5 --helixTimeout $6 --playwright $installPlaywright +echo "Running tests: dotnet $HELIX_CORRELATION_PAYLOAD/HelixTestRunner/HelixTestRunner.dll --target $1 --runtime $2 --queue $helixQueue --arch $4 --quarantined $5 --helixTimeout $6 --playwright $installPlaywright --dotnetEf $8" +dotnet $HELIX_CORRELATION_PAYLOAD/HelixTestRunner/HelixTestRunner.dll --target $1 --runtime $2 --queue $helixQueue --arch $4 --quarantined $5 --helixTimeout $6 --playwright $installPlaywright --dotnetEf $8 exit_code=$? echo "Finished tests...exit_code=$exit_code" diff --git a/eng/targets/Helix.targets b/eng/targets/Helix.targets index 35c116026c62..c240ca47a170 100644 --- a/eng/targets/Helix.targets +++ b/eng/targets/Helix.targets @@ -221,8 +221,8 @@ When the targeting pack builds, it has exactly the same version as the shared framework. Passing SharedFxVersion because that's needed even when the targeting pack isn't building. --> - call runtests.cmd $(TargetFileName) $(SharedFxVersion) $(_HelixFriendlyNameTargetQueue) $(_TestingArchitecture) $(RunQuarantinedTests) $(HelixTimeout) $(TestDependsOnPlaywright) - ./runtests.sh $(TargetFileName) $(SharedFxVersion) $(_HelixFriendlyNameTargetQueue) $(_TestingArchitecture) $(RunQuarantinedTests) $(HelixTimeout) $(TestDependsOnPlaywright) + call runtests.cmd $(TargetFileName) $(SharedFxVersion) $(_HelixFriendlyNameTargetQueue) $(_TestingArchitecture) $(RunQuarantinedTests) $(HelixTimeout) $(TestDependsOnPlaywright) $(DotnetEfVersion) + ./runtests.sh $(TargetFileName) $(SharedFxVersion) $(_HelixFriendlyNameTargetQueue) $(_TestingArchitecture) $(RunQuarantinedTests) $(HelixTimeout) $(TestDependsOnPlaywright) $(DotnetEfVersion) $(HelixCommand) $(HelixTimeout) diff --git a/eng/tools/HelixTestRunner/HelixTestRunnerOptions.cs b/eng/tools/HelixTestRunner/HelixTestRunnerOptions.cs index 13d483d64caf..3de5d928c725 100644 --- a/eng/tools/HelixTestRunner/HelixTestRunnerOptions.cs +++ b/eng/tools/HelixTestRunner/HelixTestRunnerOptions.cs @@ -55,11 +55,17 @@ public static HelixTestRunnerOptions Parse(string[] args) new Option( aliases: new string[] { "--source" }, description: "The restore sources to use during testing") - { Argument = new Argument() { Arity = ArgumentArity.ZeroOrMore }, Required = true } + { Argument = new Argument() { Arity = ArgumentArity.ZeroOrMore }, Required = true }, + + new Option( + aliases: new string[] { "--dotnetEf" }, + description: "The version of the dotnet-ef tool being installed and used") + { Argument = new Argument(), Required = true } }; var parseResult = command.Parse(args); var sharedFxVersion = parseResult.ValueForOption("--runtime"); + var dotnetEfVersion = parseResult.ValueForOption("--dotnetEf"); var options = new HelixTestRunnerOptions { Architecture = parseResult.ValueForOption("--arch"), @@ -67,6 +73,7 @@ public static HelixTestRunnerOptions Parse(string[] args) InstallPlaywright = parseResult.ValueForOption("--playwright"), Quarantined = parseResult.ValueForOption("--quarantined"), RuntimeVersion = sharedFxVersion, + DotnetEfVersion = dotnetEfVersion, Target = parseResult.ValueForOption("--target"), Timeout = TimeSpan.Parse(parseResult.ValueForOption("--helixTimeout"), CultureInfo.InvariantCulture), @@ -87,6 +94,7 @@ public static HelixTestRunnerOptions Parse(string[] args) public bool InstallPlaywright { get; private set; } public bool Quarantined { get; private set; } public string RuntimeVersion { get; private set; } + public string DotnetEfVersion { get; private set; } public string Target { get; private set; } public TimeSpan Timeout { get; private set; } diff --git a/eng/tools/HelixTestRunner/TestRunner.cs b/eng/tools/HelixTestRunner/TestRunner.cs index 5524d967b54b..6ed75015399c 100644 --- a/eng/tools/HelixTestRunner/TestRunner.cs +++ b/eng/tools/HelixTestRunner/TestRunner.cs @@ -140,7 +140,7 @@ await ProcessUtil.RunAsync($"{Options.DotnetRoot}/dotnet", cancellationToken: new CancellationTokenSource(TimeSpan.FromMinutes(2)).Token); await ProcessUtil.RunAsync($"{Options.DotnetRoot}/dotnet", - $"tool install dotnet-ef --tool-path {Options.HELIX_WORKITEM_ROOT} --add-source {correlationPayload}", + $"tool install dotnet-ef --tool-path {Options.HELIX_WORKITEM_ROOT} --add-source {correlationPayload} --version {Options.DotnetEfVersion}", environmentVariables: EnvironmentVariables, outputDataReceived: ProcessUtil.PrintMessage, errorDataReceived: ProcessUtil.PrintErrorMessage,