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,