Skip to content

Commit c21d773

Browse files
committed
Fix packaging errors
1 parent 8d9a36b commit c21d773

File tree

2 files changed

+115
-15
lines changed

2 files changed

+115
-15
lines changed

build.cake

+95-15
Original file line numberDiff line numberDiff line change
@@ -15,28 +15,31 @@ BuildSettings.Initialize(
1515

1616
//////////////////////////////////////////////////////////////////////
1717
// LISTS OF FILES USED IN CHECKING PACKAGES
18-
//////////////////////////////////////////////////////////////////////
18+
//////////////////////////////////////////////////////////////////////
1919

20+
FilePath[] ConsoleFiles = {
21+
"nunit3-console.dll", "nunit3-console.dll.config", "nunit3-console.exe", "nunit3-console.pdb",
22+
"nunit3-console.deps.json", "nunit3-console.runtimeconfig.json", "nunit.console.nuget.addins" };
2023
FilePath[] ENGINE_FILES = {
21-
"nunit.engine.dll", "nunit.engine.core.dll", "nunit.engine.api.dll", "testcentric.engine.metadata.dll" };
24+
"nunit.engine.dll", "nunit.engine.core.dll", "nunit.engine.api.dll", "testcentric.engine.metadata.dll" };
2225
FilePath[] ENGINE_PDB_FILES = {
23-
"nunit.engine.pdb", "nunit.engine.core.pdb", "nunit.engine.api.pdb"};
26+
"nunit.engine.pdb", "nunit.engine.core.pdb", "nunit.engine.api.pdb"};
2427
FilePath[] ENGINE_CORE_FILES = {
25-
"nunit.engine.core.dll", "nunit.engine.api.dll", "testcentric.engine.metadata.dll" };
28+
"nunit.engine.core.dll", "nunit.engine.api.dll", "testcentric.engine.metadata.dll" };
2629
FilePath[] ENGINE_CORE_PDB_FILES = {
27-
"nunit.engine.core.pdb", "nunit.engine.api.pdb"};
30+
"nunit.engine.core.pdb", "nunit.engine.api.pdb"};
2831
FilePath[] AGENT_FILES = {
29-
"nunit-agent.exe", "nunit-agent.exe.config",
30-
"nunit-agent-x86.exe", "nunit-agent-x86.exe.config",
31-
"nunit.engine.core.dll", "nunit.engine.api.dll", "testcentric.engine.metadata.dll"};
32+
"nunit-agent.exe", "nunit-agent.exe.config",
33+
"nunit-agent-x86.exe", "nunit-agent-x86.exe.config",
34+
"nunit.engine.core.dll", "nunit.engine.api.dll", "testcentric.engine.metadata.dll"};
3235
FilePath[] AGENT_FILES_NETCORE = {
33-
"nunit-agent.dll", "nunit-agent.dll.config",
34-
"nunit.engine.core.dll", "nunit.engine.api.dll", "testcentric.engine.metadata.dll",
35-
"Microsoft.Extensions.DependencyModel.dll"};
36+
"nunit-agent.dll", "nunit-agent.dll.config",
37+
"nunit.engine.core.dll", "nunit.engine.api.dll", "testcentric.engine.metadata.dll",
38+
"Microsoft.Extensions.DependencyModel.dll"};
3639
FilePath[] AGENT_PDB_FILES = {
37-
"nunit-agent.pdb", "nunit-agent-x86.pdb", "nunit.engine.core.pdb", "nunit.engine.api.pdb"};
40+
"nunit-agent.pdb", "nunit-agent-x86.pdb", "nunit.engine.core.pdb", "nunit.engine.api.pdb"};
3841
FilePath[] AGENT_PDB_FILES_NETCORE = {
39-
"nunit-agent.pdb", "nunit.engine.core.pdb", "nunit.engine.api.pdb"};
42+
"nunit-agent.pdb", "nunit.engine.core.pdb", "nunit.engine.api.pdb"};
4043

4144
//////////////////////////////////////////////////////////////////////
4245
// INDIVIDUAL PACKAGE DEFINITIONS
@@ -86,15 +89,24 @@ BuildSettings.Packages.AddRange(new PackageDefinition[] {
8689
NUnitConsoleRunnerNetCorePackage = new DotNetToolPackage(
8790
id: "NUnit.ConsoleRunner.NetCore",
8891
source: BuildSettings.NuGetDirectory + "runners/nunit.console-runner.netcore.nuspec",
89-
checks: new PackageCheck[] { HasFiles("nunit.exe") },
92+
checks: new PackageCheck[]
93+
{
94+
HasFiles("nunit.exe"),
95+
HasSomeDirectory(".store/nunit.consolerunner.netcore/**/tools/net6.0/any")
96+
.WithFiles(ENGINE_FILES).AndFiles(ConsoleFiles).AndFile("Microsoft.Extensions.DependencyModel.dll")
97+
},
9098
testRunner: new ConsoleRunnerSelfTester(BuildSettings.NuGetTestDirectory
9199
+ $"NUnit.ConsoleRunner.NetCore.{BuildSettings.PackageVersion}/nunit.exe"),
92100
tests: NetCoreRunnerTests),
93101

94102
NUnitConsoleRunnerNet80Package = new DotNetToolPackage(
95103
id: "NUnit.ConsoleRunner.Net80",
96104
source: BuildSettings.NuGetDirectory + "runners/nunit.console-runner.net80.nuspec",
97-
checks: new PackageCheck[] { HasFiles("nunit-net80.exe") },
105+
checks: new PackageCheck[] {
106+
HasFiles("nunit-net80.exe"),
107+
HasSomeDirectory(".store/nunit.consolerunner.net80/**/tools/net8.0/any")
108+
.WithFiles(ENGINE_FILES).AndFiles(ConsoleFiles).AndFile("Microsoft.Extensions.DependencyModel.dll")
109+
},
98110
testRunner: new ConsoleRunnerSelfTester(BuildSettings.NuGetTestDirectory
99111
+ $"NUnit.ConsoleRunner.Net80.{BuildSettings.PackageVersion}/nunit-net80.exe"),
100112
tests: NetCoreRunnerTests),
@@ -147,13 +159,19 @@ BuildSettings.Packages.AddRange(new PackageDefinition[] {
147159
HasFiles("LICENSE.txt", "NOTICES.txt"),
148160
HasDirectory("lib/net462").WithFiles(ENGINE_FILES),
149161
HasDirectory("lib/netstandard2.0").WithFiles(ENGINE_FILES),
162+
HasDirectory("lib/net6.0").WithFiles(ENGINE_FILES).AndFile("Microsoft.Extensions.DependencyModel.dll"),
163+
HasDirectory("lib/net8.0").WithFiles(ENGINE_FILES).AndFile("Microsoft.Extensions.DependencyModel.dll"),
150164
HasDirectory("contentFiles/any/lib/net462").WithFile("nunit.engine.nuget.addins"),
151165
HasDirectory("contentFiles/any/lib/netstandard2.0").WithFile("nunit.engine.nuget.addins"),
166+
HasDirectory("contentFiles/any/lib/net6.0").WithFile("nunit.engine.nuget.addins"),
167+
HasDirectory("contentFiles/any/lib/net8.0").WithFile("nunit.engine.nuget.addins"),
152168
HasDirectory("contentFiles/any/agents/net462").WithFiles(AGENT_FILES).AndFile("nunit.agent.addins")
153169
},
154170
symbols: new PackageCheck[] {
155171
HasDirectory("lib/net462").WithFiles(ENGINE_PDB_FILES),
156172
HasDirectory("lib/netstandard2.0").WithFiles(ENGINE_PDB_FILES),
173+
HasDirectory("lib/net6.0").WithFiles(ENGINE_PDB_FILES),
174+
HasDirectory("lib/net8.0").WithFiles(ENGINE_PDB_FILES),
157175
HasDirectory("contentFiles/any/agents/net462").WithFiles(AGENT_PDB_FILES)
158176
}),
159177

@@ -171,6 +189,68 @@ BuildSettings.Packages.AddRange(new PackageDefinition[] {
171189
})
172190
});
173191

192+
// Adhoc code to check content of a dotnet standalone executable
193+
// TODO: Incorporate this in the recipe itself
194+
195+
private static ExtendedDirectoryCheck HasSomeDirectory(string pattern) => new ExtendedDirectoryCheck(pattern);
196+
197+
public class ExtendedDirectoryCheck : PackageCheck
198+
{
199+
private string _directoryPattern;
200+
private List<FilePath> _files = new List<FilePath>();
201+
202+
public ExtendedDirectoryCheck(string directoryPattern)
203+
{
204+
// Assume it has no wildcard - checked in ApplyTo method
205+
_directoryPattern = directoryPattern;
206+
}
207+
208+
public ExtendedDirectoryCheck WithFiles(params FilePath[] files)
209+
{
210+
_files.AddRange(files);
211+
return this;
212+
}
213+
214+
public ExtendedDirectoryCheck AndFiles(params FilePath[] files)
215+
{
216+
return WithFiles(files);
217+
}
218+
219+
public ExtendedDirectoryCheck WithFile(FilePath file)
220+
{
221+
_files.Add(file);
222+
return this;
223+
}
224+
225+
public ExtendedDirectoryCheck AndFile(FilePath file)
226+
{
227+
return AndFiles(file);
228+
}
229+
230+
public override bool ApplyTo(DirectoryPath testDirPath)
231+
{
232+
if (_directoryPattern.Contains('*') || _directoryPattern.Contains('?')) // Wildcard
233+
{
234+
var absDirPattern = testDirPath.Combine(_directoryPattern).ToString();
235+
foreach (var dir in _context.GetDirectories(absDirPattern))
236+
{
237+
// Use first one found
238+
return CheckFilesExist(_files.Select(file => dir.CombineWithFilePath(file)));
239+
}
240+
}
241+
else // No wildcard
242+
{
243+
var absDirPath = testDirPath.Combine(_directoryPattern);
244+
if (!CheckDirectoryExists(absDirPath))
245+
return false;
246+
247+
return CheckFilesExist(_files.Select(file => absDirPath.CombineWithFilePath(file)));
248+
}
249+
250+
return false;
251+
}
252+
}
253+
174254
//////////////////////////////////////////////////////////////////////
175255
// TEST RUNNERS
176256
//////////////////////////////////////////////////////////////////////

nuget/engine/nunit.engine.nuspec

+20
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,26 @@
8080
<file src="netstandard2.0/testcentric.engine.metadata.dll" target="lib/netstandard2.0" />
8181
<file src="../../nuget/engine/nunit.engine.nuget.addins" target="contentFiles/any/lib/netstandard2.0"/>
8282

83+
<file src="net6.0/nunit.engine.dll" target="lib/net6.0" />
84+
<file src="net6.0/nunit.engine.pdb" target="lib/net6.0" />
85+
<file src="net6.0/nunit.engine.core.dll" target="lib/net6.0" />
86+
<file src="net6.0/nunit.engine.core.pdb" target="lib/net6.0" />
87+
<file src="net6.0/nunit.engine.api.dll" target="lib/net6.0" />
88+
<file src="net6.0/nunit.engine.api.pdb" target="lib/net6.0" />
89+
<file src="net6.0/testcentric.engine.metadata.dll" target="lib/net6.0" />
90+
<file src="net6.0/Microsoft.Extensions.DependencyModel.dll" target="lib/net6.0" />
91+
<file src="../../nuget/engine/nunit.engine.nuget.addins" target="contentFiles/any/lib/net6.0"/>
92+
93+
<file src="net8.0/nunit.engine.dll" target="lib/net8.0" />
94+
<file src="net8.0/nunit.engine.pdb" target="lib/net8.0" />
95+
<file src="net8.0/nunit.engine.core.dll" target="lib/net8.0" />
96+
<file src="net8.0/nunit.engine.core.pdb" target="lib/net8.0" />
97+
<file src="net8.0/nunit.engine.api.dll" target="lib/net8.0" />
98+
<file src="net8.0/nunit.engine.api.pdb" target="lib/net8.0" />
99+
<file src="net8.0/testcentric.engine.metadata.dll" target="lib/net8.0" />
100+
<file src="net8.0/Microsoft.Extensions.DependencyModel.dll" target="lib/net8.0" />
101+
<file src="../../nuget/engine/nunit.engine.nuget.addins" target="contentFiles/any/lib/net8.0"/>
102+
83103
<file src="../../nuget/engine/build/**/*" target="build" />
84104
<file src="../../nunit_256.png" target="images" />
85105
</files>

0 commit comments

Comments
 (0)