Skip to content

Commit f9d6a65

Browse files
authored
Remove prebuilt usages classified as tests (#855)
* Fix IgnoredProjectAssetsJsonFiles: full paths Compare full path to full path rather than relative paths. * Use patch to fix templating, not workaround * Block test usages from unintentionally returning
1 parent fca0bfd commit f9d6a65

File tree

5 files changed

+61
-3
lines changed

5 files changed

+61
-3
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
From 5019f96deaebf22f2f7883c2ee16b0d6839ffaa4 Mon Sep 17 00:00:00 2001
2+
From: Davis Goodin <dagood@microsoft.com>
3+
Date: Tue, 6 Nov 2018 12:43:44 -0600
4+
Subject: [PATCH] Skip test-related projects if PB_SkipTests set
5+
6+
Setting SharedTestProjects='' worked, but that approach is more difficult with
7+
OuterRingProjects where a semicolon-delimited string would need to be passed.
8+
Instead, patch PB_SkipTests handling to be more extensive.
9+
---
10+
build.proj | 8 ++++++--
11+
1 file changed, 6 insertions(+), 2 deletions(-)
12+
13+
diff --git a/build.proj b/build.proj
14+
index 0870ec97..b923f863 100644
15+
--- a/build.proj
16+
+++ b/build.proj
17+
@@ -40,10 +40,14 @@
18+
<OuterRingProjects>
19+
src/Microsoft.TemplateEngine.Edge/Microsoft.TemplateEngine.Edge.csproj;
20+
src/Microsoft.TemplateEngine.IDE/Microsoft.TemplateEngine.IDE.csproj;
21+
- test/Microsoft.TemplateEngine.Mocks/Microsoft.TemplateEngine.Mocks.csproj
22+
</OuterRingProjects>
23+
24+
- <SharedTestProjects>
25+
+ <OuterRingProjects Condition="'$(PB_SkipTests)' != 'true'">
26+
+ $(OuterRingProjects)
27+
+ test/Microsoft.TemplateEngine.Mocks/Microsoft.TemplateEngine.Mocks.csproj;
28+
+ </OuterRingProjects>
29+
+
30+
+ <SharedTestProjects Condition="'$(PB_SkipTests)' != 'true'">
31+
test/Microsoft.TemplateEngine.TestHelper/Microsoft.TemplateEngine.TestHelper.csproj
32+
</SharedTestProjects>
33+
34+
--
35+
2.17.1.windows.2
36+

repos/dir.targets

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,7 @@
453453
BaselineDataFile="$(BaselineDataFile)"
454454
OutputBaselineFile="$(PackageReportDir)generated-new-baseline.xml"
455455
OutputReportFile="$(PackageReportDir)baseline-comparison.xml"
456+
AllowTestProjectUsage="$(AllowTestProjectUsage)"
456457
ContinueOnError="$(ContinueOnPrebuiltBaselineError)" />
457458
</Target>
458459

repos/templating.proj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@
1818
<MSBuildProperties Include="BUILD_NUMBER=$(BuildNumber)" />
1919
<MSBuildProperties Include="PackageDateTime=$(PackageDateTime)" />
2020
<MSBuildProperties Include="PackageBuildQuality=$(PackageBuildQuality)" />
21-
<!-- Force SharedTestProjects to be unset, so they aren't restored/built. -->
22-
<MSBuildProperties Include="SharedTestProjects=" />
21+
<MSBuildProperties Include="PB_SKIPTESTS=true" />
2322
</ItemGroup>
2423

2524
<ItemGroup>

tools-local/tasks/Microsoft.DotNet.SourceBuild.Tasks/UsageReport/ValidateUsageAgainstBaseline.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ public class ValidateUsageAgainstBaseline : Task
2626
[Required]
2727
public string OutputReportFile { get; set; }
2828

29+
public bool AllowTestProjectUsage { get; set; }
30+
2931
public override bool Execute()
3032
{
3133
var used = UsageData.Parse(XElement.Parse(File.ReadAllText(DataFile)));
@@ -71,6 +73,26 @@ public override bool Execute()
7173
$"{diff.Unchanged.Length} packages used as expected in the baseline.");
7274
}
7375

76+
if (!AllowTestProjectUsage)
77+
{
78+
Usage[] testProjectUsages = used.Usages
79+
.Where(WriteUsageReports.IsTestUsageByHeuristic)
80+
.ToArray();
81+
82+
if (testProjectUsages.Any())
83+
{
84+
string[] projects = testProjectUsages
85+
.Select(u => u.AssetsFile)
86+
.Distinct()
87+
.ToArray();
88+
89+
Log.LogError(
90+
$"{testProjectUsages.Length} forbidden test usages found in " +
91+
$"{projects.Length} projects:\n" +
92+
string.Join("\n", projects));
93+
}
94+
}
95+
7496
// Simplify the used data to what is necessary for a baseline, to reduce file size.
7597
foreach (var usage in used.Usages)
7698
{

tools-local/tasks/Microsoft.DotNet.SourceBuild.Tasks/UsageReport/WritePackageUsageData.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,8 @@ public override bool Execute()
140140

141141
string[] assetFiles = Directory
142142
.GetFiles(RootDir, "project.assets.json", SearchOption.AllDirectories)
143-
.Select(path => path.Substring(RootDir.Length))
144143
.Except(IgnoredProjectAssetsJsonFiles.NullAsEmpty())
144+
.Select(path => path.Substring(RootDir.Length))
145145
.ToArray();
146146

147147
if (!string.IsNullOrEmpty(ProjectAssetsJsonArchiveFile))

0 commit comments

Comments
 (0)