From 002901fcb6a9cc4eea0c5df7a7214262ea323394 Mon Sep 17 00:00:00 2001 From: Critical Impact Date: Mon, 14 Oct 2024 18:25:50 +1000 Subject: [PATCH 1/2] Only include dependencies from the csproj in the project_path to review --- Plogon/BuildProcessor.cs | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/Plogon/BuildProcessor.cs b/Plogon/BuildProcessor.cs index 4a146a3..42f2bd7 100644 --- a/Plogon/BuildProcessor.cs +++ b/Plogon/BuildProcessor.cs @@ -353,7 +353,7 @@ public ISet GetBuildTasks(bool continuous) return need; } - private async Task RestorePackages(DirectoryInfo pkgFolder, NugetLockfile lockFileData, HttpClient client, HashSet reviewedNeeds) + private async Task RestorePackages(DirectoryInfo pkgFolder, NugetLockfile lockFileData, HttpClient client, HashSet reviewedNeeds, bool includeInReview) { foreach (var runtime in lockFileData.Runtimes) { @@ -363,12 +363,15 @@ private async Task RestorePackages(DirectoryInfo pkgFolder, NugetLockfile lockFi .Where(x => x.Value.Type != NugetLockfile.Dependency.DependencyType.Project) .Select(dependency => GetDependency(dependency.Key, dependency.Value, pkgFolder, client)).ToList()); - foreach (var reviewedNeed in resultNeeds) - reviewedNeeds.Add(reviewedNeed); + if (includeInReview) + { + foreach (var reviewedNeed in resultNeeds) + reviewedNeeds.Add(reviewedNeed); + } } } - private async Task RestoreAllPackages(DirectoryInfo localWorkFolder, DirectoryInfo pkgFolder, HashSet reviewedNeeds) + private async Task RestoreAllPackages(DirectoryInfo localWorkFolder, DirectoryInfo projectPath, DirectoryInfo pkgFolder, HashSet reviewedNeeds) { var lockFiles = localWorkFolder.GetFiles("packages.lock.json", SearchOption.AllDirectories); @@ -389,7 +392,7 @@ private async Task RestoreAllPackages(DirectoryInfo localWorkFolder, DirectoryIn runtimeDependencies.UnionWith(GetRuntimeDependencies(lockFileData)); - await RestorePackages(pkgFolder, lockFileData, client, reviewedNeeds); + await RestorePackages(pkgFolder, lockFileData, client, reviewedNeeds, file.Directory?.FullName == projectPath.FullName); } // fetch runtime packages @@ -951,21 +954,23 @@ public async Task ProcessTask(BuildTask task, bool commit, string? // Archive source code before build CopySourceForArchive(workDir, archiveDir); - + // Create archive zip var archiveZipFile = new FileInfo(Path.Combine(this.workFolder.FullName, $"{taskFolderName}-{archiveDir.Name}.zip")); ZipFile.CreateFromDirectory(archiveDir.FullName, archiveZipFile.FullName); - + var diff = await GetPluginDiff(workDir, task, otherTasks, !commit); var dalamudAssemblyDir = await this.dalamudReleases.GetDalamudAssemblyDirAsync(task.Channel); WriteNugetConfig(new FileInfo(Path.Combine(workDir.FullName, "nuget.config"))); - + + var projectPath = new DirectoryInfo(Path.Combine(workDir.FullName, task.Manifest.Plugin.ProjectPath)); + await RetryUntil(async () => await GetNeeds(task, externalNeedsDir, allNeeds)); - await RetryUntil(async () => await RestoreAllPackages(workDir, packagesDir, allNeeds)); - + await RetryUntil(async () => await RestoreAllPackages(workDir, projectPath, packagesDir, allNeeds)); + var needsExtendedImage = task.Manifest?.Build?.Image == "extended"; var dockerEnv = new List From 3552959c2f7d6ce1ab38d78e29fd17ff23c6b44d Mon Sep 17 00:00:00 2001 From: Critical Impact Date: Mon, 14 Oct 2024 18:31:33 +1000 Subject: [PATCH 2/2] Allow for no project path --- Plogon/BuildProcessor.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Plogon/BuildProcessor.cs b/Plogon/BuildProcessor.cs index 42f2bd7..75fb29a 100644 --- a/Plogon/BuildProcessor.cs +++ b/Plogon/BuildProcessor.cs @@ -371,7 +371,7 @@ private async Task RestorePackages(DirectoryInfo pkgFolder, NugetLockfile lockFi } } - private async Task RestoreAllPackages(DirectoryInfo localWorkFolder, DirectoryInfo projectPath, DirectoryInfo pkgFolder, HashSet reviewedNeeds) + private async Task RestoreAllPackages(DirectoryInfo localWorkFolder, DirectoryInfo? projectPath, DirectoryInfo pkgFolder, HashSet reviewedNeeds) { var lockFiles = localWorkFolder.GetFiles("packages.lock.json", SearchOption.AllDirectories); @@ -392,7 +392,7 @@ private async Task RestoreAllPackages(DirectoryInfo localWorkFolder, DirectoryIn runtimeDependencies.UnionWith(GetRuntimeDependencies(lockFileData)); - await RestorePackages(pkgFolder, lockFileData, client, reviewedNeeds, file.Directory?.FullName == projectPath.FullName); + await RestorePackages(pkgFolder, lockFileData, client, reviewedNeeds, projectPath == null || file.Directory?.FullName == projectPath.FullName); } // fetch runtime packages @@ -966,7 +966,7 @@ public async Task ProcessTask(BuildTask task, bool commit, string? WriteNugetConfig(new FileInfo(Path.Combine(workDir.FullName, "nuget.config"))); - var projectPath = new DirectoryInfo(Path.Combine(workDir.FullName, task.Manifest.Plugin.ProjectPath)); + var projectPath = task.Manifest.Plugin.ProjectPath != null ? new DirectoryInfo(Path.Combine(workDir.FullName, task.Manifest.Plugin.ProjectPath)) : null; await RetryUntil(async () => await GetNeeds(task, externalNeedsDir, allNeeds)); await RetryUntil(async () => await RestoreAllPackages(workDir, projectPath, packagesDir, allNeeds));