Skip to content

Commit cd544d1

Browse files
committed
fix(execution): include original nuget packages in requirements
1 parent 5236e83 commit cd544d1

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

source/Nuke.Build/Execution/ToolRequirementService.cs

+12-11
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,18 @@ public static void EnsureToolRequirements(INukeBuild build, IReadOnlyCollection<
1919
{
2020
var requirements = build.GetType().GetCustomAttributes<RequiresAttribute>().Select(x => x.GetRequirement())
2121
.Concat(executionPlan.SelectMany(x => x.ToolRequirements)).ToList();
22-
var directory = build.TemporaryDirectory;
2322

24-
InstallNuGetPackages(requirements.OfType<NuGetPackageRequirement>().ToList(), directory);
25-
InstallNpmPackages(requirements.OfType<NpmPackageRequirement>().ToList(), directory);
26-
InstallAptGetPackages(requirements.OfType<AptGetPackageRequirement>().ToList(), directory);
23+
InstallNuGetPackages(requirements.OfType<NuGetPackageRequirement>().ToList(), build);
24+
InstallNpmPackages(requirements.OfType<NpmPackageRequirement>().ToList(), build);
25+
InstallAptGetPackages(requirements.OfType<AptGetPackageRequirement>().ToList(), build);
2726
}
2827

29-
private static void InstallNuGetPackages(IReadOnlyCollection<NuGetPackageRequirement> requirements, AbsolutePath directory)
28+
private static void InstallNuGetPackages(IReadOnlyCollection<NuGetPackageRequirement> requirements, INukeBuild build)
3029
{
3130
if (requirements.Count == 0)
3231
return;
3332

34-
var projectFile = directory / "nuget.csproj";
33+
var projectFile = build.TemporaryDirectory / "nuget.csproj";
3534
NuGetToolPathResolver.NuGetPackagesConfigFile = projectFile;
3635
NuGetToolPathResolver.NuGetAssetsConfigFile = projectFile.Parent / "obj" / "project.assets.json";
3736

@@ -45,8 +44,10 @@ private static void InstallNuGetPackages(IReadOnlyCollection<NuGetPackageRequire
4544
<TargetFramework>net8.0</TargetFramework>
4645
</PropertyGroup>
4746
47+
<Import Project="{build.BuildProjectFile}" />
48+
4849
<ItemGroup>
49-
{groupedPackages.Select(x => $""" <PackageDownload Include="{x.Key}" Version="{x.JoinSemicolon()}" />""").JoinNewLine()}
50+
{groupedPackages.Select(x => $""" <PackageDownload Include="{x.Key}" Version="{x.JoinSemicolon()}" Exclude="@(PackageDownload)" />""").JoinNewLine()}
5051
</ItemGroup>
5152
5253
</Project>
@@ -63,12 +64,12 @@ private static void InstallNuGetPackages(IReadOnlyCollection<NuGetPackageRequire
6364
dotnet.Invoke($"restore", workingDirectory: projectFile.Parent, logInvocation: false, logOutput: false);
6465
}
6566

66-
private static void InstallNpmPackages(IReadOnlyCollection<NpmPackageRequirement> requirements, AbsolutePath directory)
67+
private static void InstallNpmPackages(IReadOnlyCollection<NpmPackageRequirement> requirements, INukeBuild build)
6768
{
6869
if (requirements.Count == 0)
6970
return;
7071

71-
var packageJsonFile = directory / "package.json";
72+
var packageJsonFile = build.TemporaryDirectory / "package.json";
7273
NpmToolPathResolver.NpmPackageJsonFile = packageJsonFile;
7374

7475
var packages = requirements.OrderBy(x => x.PackageId).ToList();
@@ -92,15 +93,15 @@ private static void InstallNpmPackages(IReadOnlyCollection<NpmPackageRequirement
9293
npm.Invoke("install", workingDirectory: packageJsonFile.Parent, logInvocation: false, logOutput: false);
9394
}
9495

95-
private static void InstallAptGetPackages(IReadOnlyCollection<AptGetPackageRequirement> requirements, AbsolutePath directory)
96+
private static void InstallAptGetPackages(IReadOnlyCollection<AptGetPackageRequirement> requirements, INukeBuild build)
9697
{
9798
if (requirements.Count == 0)
9899
return;
99100

100101
var packages = requirements.OrderBy(x => x.PackageId).ToList();
101102
Assert.True(EnvironmentInfo.IsLinux, "AptGet is only available on Linux");
102103

103-
var installScript = directory / "apt-get.sh";
104+
var installScript = build.TemporaryDirectory / "apt-get.sh";
104105

105106
var content = $"""
106107
apt-get update

0 commit comments

Comments
 (0)