Skip to content

Commit df66a4c

Browse files
committed
Refresh resource files
1 parent a6ac108 commit df66a4c

6 files changed

Lines changed: 79 additions & 30 deletions

File tree

.config/dotnet-tools.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"isRoot": true,
44
"tools": {
55
"cake.tool": {
6-
"version": "2.1.0",
6+
"version": "2.2.0",
77
"commands": [
88
"dotnet-cake"
99
]

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,7 @@ __pycache__/
330330
*.pyc
331331

332332
# Cake
333+
.cake/**
333334
tools/**
334335
BuildArtifacts/
335336

appveyor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ branches:
3636

3737
# Build cache
3838
cache:
39-
- tools -> build.cake
39+
- .cake -> build.cake
4040

4141
# Environment configuration
4242
image:

build.cake

Lines changed: 65 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
// Install tools.
2-
#tool dotnet:?package=GitVersion.Tool&version=5.8.3
2+
#tool dotnet:?package=GitVersion.Tool&version=5.10.1
3+
#tool dotnet:?package=coveralls.net&version=4.0.0
34
#tool nuget:?package=GitReleaseManager&version=0.13.0
4-
#tool nuget:?package=OpenCover&version=4.7.1221
5-
#tool nuget:?package=ReportGenerator&version=5.0.4
6-
#tool nuget:?package=coveralls.io&version=1.4.2
5+
#tool nuget:?package=ReportGenerator&version=5.1.9
76
#tool nuget:?package=xunit.runner.console&version=2.4.1
7+
#tool nuget:?package=Codecov&version=1.13.0
88

99
// Install addins.
1010
#addin nuget:?package=Cake.Coveralls&version=1.1.0
1111
#addin nuget:?package=Cake.Git&version=2.0.0
12+
#addin nuget:?package=Cake.Codecov&version=1.0.1
1213

1314

1415
///////////////////////////////////////////////////////////////////////////////
@@ -28,9 +29,24 @@ if (IsRunningOnUnix()) target = "Run-Unit-Tests";
2829
var libraryName = "HttpMultipartParser";
2930
var gitHubRepo = "Http-Multipart-Data-Parser";
3031

31-
var testCoverageFilter = "+[HttpMultipartParser]* -[HttpMultipartParser]HttpMultipartParser.Properties.* -[HttpMultipartParser]HttpMultipartParser.Models.*";
32-
var testCoverageExcludeByAttribute = "*.ExcludeFromCodeCoverage*";
33-
var testCoverageExcludeByFile = "*/*Designer.cs;*/*AssemblyInfo.cs";
32+
var testCoverageFilters = new[]
33+
{
34+
"+[HttpMultipartParser]*",
35+
"-[HttpMultipartParser]HttpMultipartParser.Properties.*",
36+
"-[HttpMultipartParser]HttpMultipartParser.Models.*",
37+
"-[HttpMultipartParser]*System.Text.Json.SourceGeneration*"
38+
};
39+
var testCoverageExcludeAttributes = new[]
40+
{
41+
"Obsolete",
42+
"GeneratedCodeAttribute",
43+
"CompilerGeneratedAttribute",
44+
"ExcludeFromCodeCoverageAttribute"
45+
};
46+
var testCoverageExcludeFiles = new[]
47+
{
48+
"**/AssemblyInfo.cs"
49+
};
3450

3551
var nuGetApiUrl = Argument<string>("NUGET_API_URL", EnvironmentVariable("NUGET_API_URL"));
3652
var nuGetApiKey = Argument<string>("NUGET_API_KEY", EnvironmentVariable("NUGET_API_KEY"));
@@ -43,6 +59,9 @@ var gitHubUserName = Argument<string>("GITHUB_USERNAME", EnvironmentVariable("GI
4359
var gitHubPassword = Argument<string>("GITHUB_PASSWORD", EnvironmentVariable("GITHUB_PASSWORD"));
4460
var gitHubRepoOwner = Argument<string>("GITHUB_REPOOWNER", EnvironmentVariable("GITHUB_REPOOWNER") ?? gitHubUserName);
4561

62+
var coverallsToken = Argument<string>("COVERALLS_REPO_TOKEN", EnvironmentVariable("COVERALLS_REPO_TOKEN"));
63+
var codecovToken = Argument<string>("CODECOV_TOKEN", EnvironmentVariable("CODECOV_TOKEN"));
64+
4665
var sourceFolder = "./Source/";
4766
var outputDir = "./artifacts/";
4867
var codeCoverageDir = $"{outputDir}CodeCoverage/";
@@ -72,7 +91,14 @@ var isBenchmarkProjectPresent = FileExists(benchmarkProject);
7291
// - when running unit tests on Ubuntu
7392
// - when calculating code coverage
7493
// FYI, this will cause an error if the source project and/or the unit test project are not configured to target this desired framework:
75-
var desiredFramework = IsRunningOnWindows() ? null : "net5.0";
94+
const string DefaultFramework = "net6.0";
95+
var desiredFramework = (
96+
!IsRunningOnWindows() ||
97+
target.Equals("Coverage", StringComparison.OrdinalIgnoreCase) ||
98+
target.Equals("Run-Code-Coverage", StringComparison.OrdinalIgnoreCase) ||
99+
target.Equals("Generate-Code-Coverage-Report", StringComparison.OrdinalIgnoreCase) ||
100+
target.Equals("Upload-Coverage-Result", StringComparison.OrdinalIgnoreCase)
101+
) ? DefaultFramework : null;
76102

77103

78104
///////////////////////////////////////////////////////////////////////////////
@@ -225,7 +251,7 @@ Task("Build")
225251
AssemblyVersion = versionInfo.MajorMinorPatch,
226252
FileVersion = versionInfo.MajorMinorPatch,
227253
InformationalVersion = versionInfo.InformationalVersion,
228-
ContinuousIntegrationBuild = !BuildSystem.IsLocalBuild
254+
ContinuousIntegrationBuild = true
229255
}
230256
});
231257
});
@@ -247,26 +273,26 @@ Task("Run-Code-Coverage")
247273
.IsDependentOn("Build")
248274
.Does(() =>
249275
{
250-
Action<ICakeContext> testAction = ctx => ctx.DotNetTest(unitTestsProject, new DotNetTestSettings
276+
var testSettings = new DotNetTestSettings
251277
{
252278
NoBuild = true,
253279
NoRestore = true,
254280
Configuration = configuration,
255-
Framework = desiredFramework
256-
});
257-
258-
OpenCover(testAction,
259-
$"{codeCoverageDir}coverage.xml",
260-
new OpenCoverSettings
261-
{
262-
OldStyle = true,
263-
MergeOutput = true,
264-
ArgumentCustomization = args => args.Append("-returntargetcode")
265-
}
266-
.WithFilter(testCoverageFilter)
267-
.ExcludeByAttribute(testCoverageExcludeByAttribute)
268-
.ExcludeByFile(testCoverageExcludeByFile)
269-
);
281+
Framework = DefaultFramework,
282+
283+
// The following assumes that coverlet.msbuild has been added to the unit testing project
284+
ArgumentCustomization = args => args
285+
.Append("/p:CollectCoverage=true")
286+
.Append("/p:CoverletOutputFormat=opencover")
287+
.Append($"/p:CoverletOutput={MakeAbsolute(Directory(codeCoverageDir))}/coverage.xml") // The name of the framework will be inserted between "coverage" and "xml". This is important to know when uploading the XML file to coveralls/codecov and when generating the HTML report
288+
.Append($"/p:ExcludeByAttribute={string.Join("%2c", testCoverageExcludeAttributes)}")
289+
.Append($"/p:ExcludeByFile={string.Join("%2c", testCoverageExcludeFiles)}")
290+
.Append($"/p:Exclude={string.Join("%2c", testCoverageFilters.Where(filter => filter.StartsWith("-")).Select(filter => filter.TrimStart("-", StringComparison.OrdinalIgnoreCase)))}")
291+
.Append($"/p:Include={string.Join("%2c", testCoverageFilters.Where(filter => filter.StartsWith("+")).Select(filter => filter.TrimStart("+", StringComparison.OrdinalIgnoreCase)))}")
292+
.Append("/p:SkipAutoProps=true")
293+
};
294+
295+
DotNetTest(unitTestsProject, testSettings);
270296
});
271297

272298
Task("Upload-Coverage-Result")
@@ -275,7 +301,19 @@ Task("Upload-Coverage-Result")
275301
{
276302
try
277303
{
278-
CoverallsIo($"{codeCoverageDir}coverage.xml");
304+
CoverallsNet(new FilePath($"{codeCoverageDir}coverage.{DefaultFramework}.xml"), CoverallsNetReportType.OpenCover, new CoverallsNetSettings()
305+
{
306+
RepoToken = coverallsToken
307+
});
308+
}
309+
catch (Exception e)
310+
{
311+
Warning(e.Message);
312+
}
313+
314+
try
315+
{
316+
Codecov($"{codeCoverageDir}coverage.{DefaultFramework}.xml", codecovToken);
279317
}
280318
catch (Exception e)
281319
{
@@ -288,7 +326,7 @@ Task("Generate-Code-Coverage-Report")
288326
.Does(() =>
289327
{
290328
ReportGenerator(
291-
new FilePath($"{codeCoverageDir}coverage.xml"),
329+
new FilePath($"{codeCoverageDir}coverage.{DefaultFramework}.xml"),
292330
codeCoverageDir,
293331
new ReportGeneratorSettings() {
294332
ClassFilters = new[] { "*.UnitTests*" }

cake.config

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
; The configuration file for Cake.
2+
3+
[Nuget]
4+
LoadDependencies=true
5+
6+
[Paths]
7+
Tools=./.cake
8+
9+
[Settings]
10+
EnableScriptCache=true

global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"sdk": {
3-
"version": "6.0.200",
3+
"version": "6.0.202",
44
"rollForward": "latestFeature"
55
}
66
}

0 commit comments

Comments
 (0)