Skip to content

Commit 0678940

Browse files
committed
[wasm] WBT: Use a clean NUGET_PACKAGES dir separate from the project directory
1 parent 55120ac commit 0678940

7 files changed

Lines changed: 17 additions & 8 deletions

File tree

src/mono/wasm/Wasm.Build.Tests/BlazorWasmBuildPublishTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@ public void BugRegression_60479_WithRazorClassLib()
241241
Directory.CreateDirectory(wasmProjectDir);
242242
new DotNetCommand(s_buildEnv, _testOutput, useDefaultArgs: false)
243243
.WithWorkingDirectory(wasmProjectDir)
244+
.WithEnvironmentVariable("NUGET_PACKAGES", _nugetPackagesDir)
244245
.ExecuteWithCapturedOutput("new blazorwasm")
245246
.EnsureSuccessful();
246247

@@ -249,6 +250,7 @@ public void BugRegression_60479_WithRazorClassLib()
249250
Directory.CreateDirectory(razorProjectDir);
250251
new DotNetCommand(s_buildEnv, _testOutput, useDefaultArgs: false)
251252
.WithWorkingDirectory(razorProjectDir)
253+
.WithEnvironmentVariable("NUGET_PACKAGES", _nugetPackagesDir)
252254
.ExecuteWithCapturedOutput("new razorclasslib")
253255
.EnsureSuccessful();
254256

src/mono/wasm/Wasm.Build.Tests/BlazorWasmTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ private CommandResult PublishForRequiresWorkloadTest(string config, string extra
6161
string publishLogPath = Path.Combine(s_buildEnv.LogRootPath, id, $"{id}.binlog");
6262
return new DotNetCommand(s_buildEnv, _testOutput)
6363
.WithWorkingDirectory(_projectDir!)
64+
.WithEnvironmentVariable("NUGET_PACKAGES", _nugetPackagesDir)
6465
.ExecuteWithCapturedOutput("publish",
6566
$"-bl:{publishLogPath}",
6667
$"-p:Configuration={config}");
@@ -109,6 +110,7 @@ private void BuildNet50Project(string config, bool aot, bool expectError, string
109110
string publishLogPath = Path.Combine(logPath, $"{id}.binlog");
110111
CommandResult result = new DotNetCommand(s_buildEnv, _testOutput)
111112
.WithWorkingDirectory(_projectDir!)
113+
.WithEnvironmentVariable("NUGET_PACKAGES", _nugetPackagesDir)
112114
.ExecuteWithCapturedOutput("publish",
113115
$"-bl:{publishLogPath}",
114116
(aot ? "-p:RunAOTCompilation=true" : ""),

src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public abstract class BuildTestBase : IClassFixture<SharedBuildPerTestClassFixtu
3636
protected string _logPath;
3737
protected bool _enablePerTestCleanup = false;
3838
protected SharedBuildPerTestClassFixture _buildContext;
39+
protected string _nugetPackagesDir = string.Empty;
3940

4041
// FIXME: use an envvar to override this
4142
protected static int s_defaultPerTestTimeoutMs = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? 30*60*1000 : 15*60*1000;
@@ -63,13 +64,6 @@ static BuildTestBase()
6364
else
6465
s_xharnessRunnerCommand = EnvironmentVariables.XHarnessCliPath;
6566

66-
string? nugetPackagesPath = Environment.GetEnvironmentVariable("NUGET_PACKAGES");
67-
if (!string.IsNullOrEmpty(nugetPackagesPath))
68-
{
69-
if (!Directory.Exists(nugetPackagesPath))
70-
Directory.CreateDirectory(nugetPackagesPath);
71-
}
72-
7367
Console.WriteLine ("");
7468
Console.WriteLine ($"==============================================================================================");
7569
Console.WriteLine ($"=============== Running with {(s_buildEnv.IsWorkload ? "Workloads" : "No workloads")} ===============");
@@ -286,7 +280,12 @@ protected void InitPaths(string id)
286280
if (_projectDir == null)
287281
_projectDir = Path.Combine(AppContext.BaseDirectory, id);
288282
_logPath = Path.Combine(s_buildEnv.LogRootPath, id);
283+
_nugetPackagesDir = Path.Combine(BuildEnvironment.TmpPath, "nuget", id);
284+
285+
if (Directory.Exists(_nugetPackagesDir))
286+
Directory.Delete(_nugetPackagesDir, recursive: true);
289287

288+
Directory.CreateDirectory(_nugetPackagesDir!);
290289
Directory.CreateDirectory(_logPath);
291290
}
292291

@@ -405,6 +404,7 @@ protected static BuildArgs ExpandBuildArgs(BuildArgs buildArgs, string extraProp
405404
foreach (var kvp in options.ExtraBuildEnvironmentVariables!)
406405
envVars[kvp.Key] = kvp.Value;
407406
}
407+
envVars["NUGET_PACKAGES"] = _nugetPackagesDir;
408408
result = AssertBuild(sb.ToString(), id, expectSuccess: options.ExpectSuccess, envVars: envVars);
409409

410410
// check that we are using the correct runtime pack!
@@ -487,6 +487,7 @@ public string CreateBlazorWasmTemplateProject(string id)
487487
InitBlazorWasmProjectDir(id);
488488
new DotNetCommand(s_buildEnv, _testOutput, useDefaultArgs: false)
489489
.WithWorkingDirectory(_projectDir!)
490+
.WithEnvironmentVariable("NUGET_PACKAGES", _nugetPackagesDir)
490491
.ExecuteWithCapturedOutput("new blazorwasm")
491492
.EnsureSuccessful();
492493

src/mono/wasm/Wasm.Build.Tests/CleanTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public void Blazor_BuildThenClean_NativeRelinking(string config)
4242
string logPath = Path.Combine(s_buildEnv.LogRootPath, id, $"{id}-clean.binlog");
4343
new DotNetCommand(s_buildEnv, _testOutput)
4444
.WithWorkingDirectory(_projectDir!)
45+
.WithEnvironmentVariable("NUGET_PACKAGES", _nugetPackagesDir)
4546
.ExecuteWithCapturedOutput("build", "-t:Clean", $"-p:Configuration={config}", $"-bl:{logPath}")
4647
.EnsureSuccessful();
4748

@@ -89,6 +90,7 @@ private void Blazor_BuildNativeNonNative_ThenCleanTest(string config, bool first
8990
string logPath = Path.Combine(s_buildEnv.LogRootPath, id, $"{id}-clean.binlog");
9091
new DotNetCommand(s_buildEnv, _testOutput)
9192
.WithWorkingDirectory(_projectDir!)
93+
.WithEnvironmentVariable("NUGET_PACKAGES", _projectDir!)
9294
.ExecuteWithCapturedOutput("build", "-t:Clean", $"-p:Configuration={config}", $"-bl:{logPath}")
9395
.EnsureSuccessful();
9496

src/mono/wasm/Wasm.Build.Tests/NativeBuildTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ public void BlazorWasm_CanRunMonoAOTCross_WithNoTrimming(string config)
123123
string publishLogPath = Path.Combine(s_buildEnv.LogRootPath, id, $"{id}.binlog");
124124
CommandResult res = new DotNetCommand(s_buildEnv, _testOutput)
125125
.WithWorkingDirectory(_projectDir!)
126+
.WithEnvironmentVariable("NUGET_PACKAGES", _nugetPackagesDir)
126127
.ExecuteWithCapturedOutput("publish",
127128
$"-bl:{publishLogPath}",
128129
"-p:RunAOTCompilation=true",

src/mono/wasm/Wasm.Build.Tests/RunCommand.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ public class RunCommand : DotNetCommand
1010
{
1111
public RunCommand(BuildEnvironment buildEnv, ITestOutputHelper _testOutput, string label="") : base(buildEnv, _testOutput, false, label)
1212
{
13+
WithEnvironmentVariables(buildEnv.EnvVars);
1314
WithEnvironmentVariable("DOTNET_ROOT", buildEnv.DotNet);
1415
WithEnvironmentVariable("DOTNET_INSTALL_DIR", Path.GetDirectoryName(buildEnv.DotNet)!);
1516
WithEnvironmentVariable("DOTNET_MULTILEVEL_LOOKUP", "0");

src/mono/wasm/Wasm.Build.Tests/ToolCommand.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public async virtual Task<CommandResult> ExecuteAsync(params string[] args)
7979
{
8080
var resolvedCommand = _command;
8181
string fullArgs = GetFullArgs(args);
82-
_testOutput.WriteLine($"[{_label}] Executing - {resolvedCommand} {fullArgs} - {WorkingDirectoryInfo()}");
82+
_testOutput.WriteLine($"[{_label}] Executing - {resolvedCommand} {fullArgs} {WorkingDirectoryInfo()}");
8383
return await ExecuteAsyncInternal(resolvedCommand, fullArgs);
8484
}
8585

0 commit comments

Comments
 (0)