Account for .Sources packages when computing the repo graph
This commit is contained in:
parent
e19c552cd3
commit
ee5178160e
|
|
@ -179,7 +179,7 @@
|
||||||
SourceName="Artifacts"
|
SourceName="Artifacts"
|
||||||
Condition="%(Repository.Build)"
|
Condition="%(Repository.Build)"
|
||||||
SourceUri="$(BuildDir)" />
|
SourceUri="$(BuildDir)" />
|
||||||
|
|
||||||
<UpdatePackageSource
|
<UpdatePackageSource
|
||||||
NuGetConfigPath="%(Repository.RootPath)NuGet.config"
|
NuGetConfigPath="%(Repository.RootPath)NuGet.config"
|
||||||
SourceName="MirroredArtifacts"
|
SourceName="MirroredArtifacts"
|
||||||
|
|
|
||||||
|
|
@ -193,13 +193,25 @@ namespace RepoTasks
|
||||||
RootDir = Path.GetDirectoryName(s.FullPath)
|
RootDir = Path.GetDirectoryName(s.FullPath)
|
||||||
};
|
};
|
||||||
|
|
||||||
var packages = artifacts.Where(a => a.RepoName.Equals(repoName, StringComparison.OrdinalIgnoreCase)).ToList();
|
var packages = artifacts
|
||||||
|
.Where(a => a.RepoName.Equals(repoName, StringComparison.OrdinalIgnoreCase))
|
||||||
|
.ToDictionary(p => p.PackageInfo.Id, p => p, StringComparer.OrdinalIgnoreCase);
|
||||||
|
|
||||||
foreach (var proj in s.Projects)
|
foreach (var proj in s.Projects)
|
||||||
{
|
{
|
||||||
var projectGroup = packages.Any(p => p.PackageInfo.Id == proj.PackageId)
|
IList<Project> projectGroup;
|
||||||
? repo.Projects
|
if (packages.ContainsKey(proj.PackageId))
|
||||||
: repo.SupportProjects;
|
{
|
||||||
|
// this project is a package producer and consumer
|
||||||
|
packages.Remove(proj.PackageId);
|
||||||
|
projectGroup = repo.Projects;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// this project is a package consumer
|
||||||
|
projectGroup = repo.SupportProjects;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
projectGroup.Add(new Project(proj.PackageId)
|
projectGroup.Add(new Project(proj.PackageId)
|
||||||
{
|
{
|
||||||
|
|
@ -211,6 +223,12 @@ namespace RepoTasks
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach (var packageId in packages.Keys)
|
||||||
|
{
|
||||||
|
// these packages are produced from something besides a csproj. e.g. .Sources packages
|
||||||
|
repo.Projects.Add(new Project(packageId) { Repository = repo });
|
||||||
|
}
|
||||||
|
|
||||||
return repo;
|
return repo;
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue