Skip to content

Commit 43ebf40

Browse files
committed
Merge branch 'release/0.11.0'
* release/0.11.0: (#56) Update all artifacts through build provider (#57) Fixed casing of test file names (#58) Ensure log file is generated from xBuild (maint) Fix information message
2 parents 4ffd512 + 18a8295 commit 43ebf40

File tree

8 files changed

+94
-18
lines changed

8 files changed

+94
-18
lines changed

Chocolatey.Cake.Recipe/Content/analyzing.cake

+6-1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ BuildParameters.Tasks.InspectCodeTask = Task("InspectCode")
4949
data.RepositoryRoot);
5050
Information("{0} InspectCode issues are found.", issues.Count());
5151
data.AddIssues(issues);
52+
53+
if (FileExists(inspectCodeLogFilePath))
54+
{
55+
BuildParameters.BuildProvider.UploadArtifact(inspectCodeLogFilePath);
56+
}
5257
})
5358
);
5459

@@ -63,7 +68,7 @@ BuildParameters.Tasks.CreateIssuesReportTask = Task("CreateIssuesReport")
6368
"./",
6469
issueReportFile);
6570

66-
if (!BuildParameters.IsLocalBuild && FileExists(issueReportFile))
71+
if (FileExists(issueReportFile))
6772
{
6873
BuildParameters.BuildProvider.UploadArtifact(issueReportFile);
6974
}

Chocolatey.Cake.Recipe/Content/build.cake

+9-5
Original file line numberDiff line numberDiff line change
@@ -143,9 +143,16 @@ BuildParameters.Tasks.BuildTask = Task("Build")
143143
.WithTarget("Build")
144144
.WithProperty("TreatWarningsAsErrors", BuildParameters.TreatWarningsAsErrors.ToString());
145145

146+
xbuildSettings.ArgumentCustomization = args => args.Append(string.Format("/filelogger /flp1:LogFile={0};Append;Encoding=ASCII", BuildParameters.Paths.Files.BuildLogFilePath.FullPath));
147+
146148
XBuild(BuildParameters.SolutionFilePath, xbuildSettings);
147149
}
148150

151+
if (FileExists(BuildParameters.Paths.Files.BuildLogFilePath))
152+
{
153+
BuildParameters.BuildProvider.UploadArtifact(BuildParameters.Paths.Files.BuildLogFilePath);
154+
}
155+
149156
CopyBuildOutput();
150157
}));
151158

@@ -410,9 +417,6 @@ BuildParameters.Tasks.BuildMsiTask = Task("Build-MSI")
410417
})
411418
);
412419

413-
BuildParameters.Tasks.PackageTask = Task("Package")
414-
.IsDependentOn("Export-Release-Notes");
415-
416420
BuildParameters.Tasks.DefaultTask = Task("Default")
417421
.IsDependentOn("Package");
418422

@@ -531,7 +535,7 @@ public class Builder
531535
BuildParameters.Tasks.GenerateLocalCoverageReportTask.IsDependentOn("Test-NUnit");
532536
BuildParameters.Tasks.GenerateLocalCoverageReportTask.IsDependentOn("Test-xUnit");
533537
BuildParameters.Tasks.TestTask.IsDependentOn("Generate-FriendlyTestReport");
534-
BuildParameters.Tasks.TestTask.IsDependentOn("Generate-LocalCoverageReport");
538+
BuildParameters.Tasks.TestTask.IsDependentOn("Generate-FriendlyCoverageReport");
535539
BuildParameters.Tasks.TestTask.IsDependentOn("Report-UnitTestResults");
536540
BuildParameters.Tasks.TestTask.IsDependentOn("Report-Code-Coverage-Metrics");
537541
}
@@ -544,7 +548,7 @@ public class Builder
544548

545549
BuildParameters.Tasks.PackageTask.IsDependentOn(prefix + "Pack");
546550
BuildParameters.Tasks.GenerateLocalCoverageReportTask.IsDependentOn(prefix + "Test");
547-
BuildParameters.Tasks.TestTask.IsDependentOn("Generate-LocalCoverageReport");
551+
BuildParameters.Tasks.TestTask.IsDependentOn("Generate-FriendlyCoverageReport");
548552
BuildParameters.Tasks.TestTask.IsDependentOn("Report-UnitTestResults");
549553
BuildParameters.Tasks.TestTask.IsDependentOn("Report-Code-Coverage-Metrics");
550554
}

Chocolatey.Cake.Recipe/Content/github-actions.cake

+1
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ public class GitHubActionBuildProvider : IBuildProvider
162162

163163
public void UploadArtifact(FilePath file)
164164
{
165+
_context.Information("Uploading artifact from path: {0}", file.FullPath);
165166
_context.Information("Uploading artifacts is currently not supported in Cake.Recipe. Please use the actions/upload-artifacts GitHub Action");
166167
}
167168
}

Chocolatey.Cake.Recipe/Content/ilmerge.cake

+5
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ BuildParameters.Tasks.ILMergeTask = Task("Run-ILMerge")
1616

1717
Information("Running ILMerge...");
1818
ILMerge(ilMergeConfig.Output, ilMergeConfig.PrimaryAssemblyName, ilMergeConfig.AssemblyPaths, settings);
19+
20+
if (FileExists(ilMergeConfig.LogFile))
21+
{
22+
BuildParameters.BuildProvider.UploadArtifact(ilMergeConfig.LogFile);
23+
}
1924
}
2025
}
2126
else

Chocolatey.Cake.Recipe/Content/localbuild.cake

+1
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ public class LocalBuildBuildProvider : IBuildProvider
192192

193193
public void UploadArtifact(FilePath file)
194194
{
195+
_context.Information("Uploading artifact from path: {0}", file.FullPath);
195196
_context.Information("Unable to upload artifacts as running local build");
196197
}
197198
}

Chocolatey.Cake.Recipe/Content/packages.cake

+15-1
Original file line numberDiff line numberDiff line change
@@ -310,4 +310,18 @@ public void PushNuGetPackages(ICakeContext context, bool isRelease, List<Package
310310
{
311311
context.Information("Unable to publish NuGet Packages as NuGet Packages Directory doesn't exist.");
312312
}
313-
}
313+
}
314+
315+
BuildParameters.Tasks.PackageTask = Task("Package")
316+
.IsDependentOn("Export-Release-Notes")
317+
.Does(() => {
318+
foreach (var nuGetPackage in GetFiles(BuildParameters.Paths.Directories.NuGetPackages + "/**/*.nupkg"))
319+
{
320+
BuildParameters.BuildProvider.UploadArtifact(nuGetPackage);
321+
}
322+
323+
foreach (var chocolateyPackage in GetFiles(BuildParameters.Paths.Directories.ChocolateyPackages + "/*.nupkg"))
324+
{
325+
BuildParameters.BuildProvider.UploadArtifact(chocolateyPackage);
326+
}
327+
});

Chocolatey.Cake.Recipe/Content/teamcity.cake

+4
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ public class TeamCityBuildProvider : IBuildProvider
145145
Repository = new TeamCityRepositoryInfo(teamCity, context);
146146

147147
_teamCity = teamCity;
148+
_context = context;
148149
}
149150

150151
public IRepositoryInfo Repository { get; }
@@ -169,8 +170,11 @@ public class TeamCityBuildProvider : IBuildProvider
169170

170171
private readonly ITeamCityProvider _teamCity;
171172

173+
private readonly ICakeContext _context;
174+
172175
public void UploadArtifact(FilePath file)
173176
{
177+
_context.Information("Uploading artifact from path: {0}", file.FullPath);
174178
_teamCity.PublishArtifacts(file.FullPath);
175179
}
176180
}

Chocolatey.Cake.Recipe/Content/testing.cake

+53-11
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ BuildParameters.Tasks.TestNUnitTask = Task("Test-NUnit")
2121
Information("Running OpenCover and NUnit...");
2222

2323
OpenCover(tool => {
24-
tool.NUnit3(GetFiles(BuildParameters.Paths.Directories.PublishedNUnitTests + (BuildParameters.TestFilePattern ?? "/**/*Tests.dll")), new NUnit3Settings {
24+
tool.NUnit3(GetFiles(BuildParameters.Paths.Directories.PublishedNUnitTests + (BuildParameters.TestFilePattern ?? "/**/*[tT]ests.dll")), new NUnit3Settings {
2525
Work = BuildParameters.Paths.Directories.NUnitTestResults
2626
});
2727
},
@@ -37,10 +37,10 @@ BuildParameters.Tasks.TestNUnitTask = Task("Test-NUnit")
3737
}
3838
else
3939
{
40-
Information("Running OpenCover and NUnit...");
40+
Information("Running NUnit...");
4141

4242
// OpenCover doesn't work on anything non-windows, so let's just run NUnit by itself
43-
NUnit3(GetFiles(BuildParameters.Paths.Directories.PublishedNUnitTests + (BuildParameters.TestFilePattern ?? "/**/*Tests.dll")), new NUnit3Settings {
43+
NUnit3(GetFiles(BuildParameters.Paths.Directories.PublishedNUnitTests + (BuildParameters.TestFilePattern ?? "/**/*[tT]ests.dll")), new NUnit3Settings {
4444
Work = BuildParameters.Paths.Directories.NUnitTestResults
4545
});
4646
}
@@ -51,14 +51,14 @@ BuildParameters.Tasks.TestxUnitTask = Task("Test-xUnit")
5151
.IsDependentOn("Install-OpenCover")
5252
.WithCriteria(() => DirectoryExists(BuildParameters.Paths.Directories.PublishedxUnitTests), "Skipping because there are no published xUnit tests")
5353
.Does(() => RequireTool(ToolSettings.XUnitTool, () => {
54-
EnsureDirectoryExists(BuildParameters.Paths.Directories.xUnitTestResults);
54+
EnsureDirectoryExists(BuildParameters.Paths.Directories.xUnitTestResults);
5555

5656
if (BuildParameters.BuildAgentOperatingSystem == PlatformFamily.Windows)
5757
{
5858
Information("Running OpenCover and xUnit...");
5959

6060
OpenCover(tool => {
61-
tool.XUnit2(GetFiles(BuildParameters.Paths.Directories.PublishedxUnitTests + (BuildParameters.TestFilePattern ?? "/**/*Tests.dll")), new XUnit2Settings {
61+
tool.XUnit2(GetFiles(BuildParameters.Paths.Directories.PublishedxUnitTests + (BuildParameters.TestFilePattern ?? "/**/*[tT]ests.dll")), new XUnit2Settings {
6262
OutputDirectory = BuildParameters.Paths.Directories.xUnitTestResults,
6363
XmlReport = true,
6464
NoAppDomain = true
@@ -79,7 +79,7 @@ BuildParameters.Tasks.TestxUnitTask = Task("Test-xUnit")
7979
Information("Running xUnit...");
8080

8181
// OpenCover doesn't work on anything non-windows, so let's just run xUnit by itself
82-
XUnit2(GetFiles(BuildParameters.Paths.Directories.PublishedxUnitTests + (BuildParameters.TestFilePattern ?? "/**/*Tests.dll")), new XUnit2Settings {
82+
XUnit2(GetFiles(BuildParameters.Paths.Directories.PublishedxUnitTests + (BuildParameters.TestFilePattern ?? "/**/*[tT]ests.dll")), new XUnit2Settings {
8383
OutputDirectory = BuildParameters.Paths.Directories.xUnitTestResults,
8484
XmlReport = true,
8585
NoAppDomain = true
@@ -214,6 +214,13 @@ BuildParameters.Tasks.GenerateFriendlyTestReportTask = Task("Generate-FriendlyTe
214214
foreach (var directory in possibleDirectories.Where((d) => DirectoryExists(d)))
215215
{
216216
ReportUnit(directory, directory, new ReportUnitSettings());
217+
218+
var reportUnitFiles = GetFiles(directory + "/*.html");
219+
var reportUnitZipFileName = directory.FullPath.Contains("xunit") ? "xunit-reportunit.zip" : "nunit-reportunit.zip";
220+
var rootPath =directory.FullPath.Contains("xunit") ? "./code_drop/TestResults/xUnit" : "./code_drop/TestResults/NUnit";
221+
Zip(rootPath, directory + "/" + reportUnitZipFileName, reportUnitFiles);
222+
223+
BuildParameters.BuildProvider.UploadArtifact(directory + "/" + reportUnitZipFileName);
217224
}
218225
})
219226
);
@@ -256,8 +263,6 @@ BuildParameters.Tasks.ReportCodeCoverageMetricsTask = Task("Report-Code-Coverage
256263

257264
foreach(var coverageFile in coverageFiles)
258265
{
259-
BuildParameters.BuildProvider.UploadArtifact(coverageFile);
260-
261266
XDocument doc = XDocument.Load(coverageFile.FullPath);
262267
XElement summary = doc.XPathSelectElement("/CoverageSession/Summary");
263268

@@ -318,8 +323,7 @@ private void ReportCoverageMetric(
318323
Information($"##teamcity[buildStatisticValue key='{tcCoverageKey}' value='{coverage}']");
319324
}
320325

321-
BuildParameters.Tasks.GenerateLocalCoverageReportTask = Task("Generate-LocalCoverageReport")
322-
.WithCriteria(() => BuildParameters.IsLocalBuild, "Skipping due to not running a local build")
326+
BuildParameters.Tasks.GenerateLocalCoverageReportTask = Task("Generate-FriendlyCoverageReport")
323327
.Does(() => RequireTool(BuildParameters.IsDotNetCoreBuild || BuildParameters.PreferDotNetGlobalToolUsage ? ToolSettings.ReportGeneratorGlobalTool : ToolSettings.ReportGeneratorTool, () => {
324328
var coverageFiles = GetFiles(BuildParameters.Paths.Directories.TestCoverage + "/coverlet/*.xml");
325329
if (FileExists(BuildParameters.Paths.Files.TestCoverageOutputFilePath))
@@ -338,6 +342,17 @@ BuildParameters.Tasks.GenerateLocalCoverageReportTask = Task("Generate-LocalCove
338342
}
339343

340344
ReportGenerator(coverageFiles, BuildParameters.Paths.Directories.TestCoverage, settings);
345+
346+
var reportGeneratorFiles = GetFiles(BuildParameters.Paths.Directories.TestCoverage + "/*.html")
347+
+ GetFiles(BuildParameters.Paths.Directories.TestCoverage + "/*.htm")
348+
+ GetFiles(BuildParameters.Paths.Directories.TestCoverage + "/*.js")
349+
+ GetFiles(BuildParameters.Paths.Directories.TestCoverage + "/*.svg")
350+
+ GetFiles(BuildParameters.Paths.Directories.TestCoverage + "/*.css");
351+
352+
var reportGeneratorZipFileName = "coverage.zip";
353+
Zip("./code_drop/TestCoverage", BuildParameters.Paths.Directories.TestCoverage + "/" + reportGeneratorZipFileName, reportGeneratorFiles);
354+
355+
BuildParameters.BuildProvider.UploadArtifact(BuildParameters.Paths.Directories.TestCoverage + "/" + reportGeneratorZipFileName);
341356
}
342357
else
343358
{
@@ -372,4 +387,31 @@ BuildParameters.Tasks.GenerateLocalCoverageReportTask = Task("Convert-OpenCoverT
372387
})
373388
);
374389

375-
BuildParameters.Tasks.TestTask = Task("Test");
390+
BuildParameters.Tasks.TestTask = Task("Test")
391+
.Does(() => {
392+
var coverageFiles = GetFiles(BuildParameters.Paths.Directories.TestCoverage + "/coverlet/*.xml");
393+
if (FileExists(BuildParameters.Paths.Files.TestCoverageOutputFilePath))
394+
{
395+
coverageFiles += BuildParameters.Paths.Files.TestCoverageOutputFilePath;
396+
}
397+
398+
foreach (var coverageFile in coverageFiles)
399+
{
400+
BuildParameters.BuildProvider.UploadArtifact(coverageFile);
401+
}
402+
403+
foreach (var nUnitResultFile in GetFiles(BuildParameters.Paths.Directories.NUnitTestResults + "/*.xml"))
404+
{
405+
BuildParameters.BuildProvider.UploadArtifact(nUnitResultFile);
406+
}
407+
408+
foreach (var xUnitResultFile in GetFiles(BuildParameters.Paths.Directories.xUnitTestResults + "/*.xml"))
409+
{
410+
BuildParameters.BuildProvider.UploadArtifact(xUnitResultFile);
411+
}
412+
413+
if (FileExists(BuildParameters.Paths.Directories.TestCoverage + "/lcov.info"))
414+
{
415+
BuildParameters.BuildProvider.UploadArtifact(BuildParameters.Paths.Directories.TestCoverage + "/lcov.info");
416+
}
417+
});

0 commit comments

Comments
 (0)