1
1
#tool "nuget:?package=GitVersion.CommandLine"
2
2
#tool "nuget:?package=xunit.runner.console"
3
- #tool "nuget:?package=OpenCover"
4
- #tool "nuget:?package=coveralls.net"
5
- #addin "Cake.Coveralls" ;
3
+ #tool "nuget:?package=JetBrains.dotCover.CommandLineTools"
4
+ #load "tasks/variables.cake" ;
6
5
7
6
var target = Argument ( "target" , "Default" ) ;
8
7
var configuration = Argument ( "configuration" , "Release" ) ;
@@ -26,7 +25,11 @@ Task("Build")
26
25
. Does ( ( ) =>
27
26
{
28
27
foreach ( var project in GetFiles ( "src/*/*.csproj" ) . Concat ( GetFiles ( "test/*/*.csproj" ) ) )
29
- DotNetCoreBuild ( project . FullPath ) ;
28
+ DotNetCoreBuild ( project . FullPath , new DotNetCoreBuildSettings
29
+ {
30
+ Configuration = configuration ,
31
+ EnvironmentVariables = GitVersionEnvironmentVariables ,
32
+ } ) ;
30
33
} ) ;
31
34
32
35
Task ( "Test" )
@@ -39,90 +42,115 @@ Task("Test")
39
42
foreach ( var testProject in GetFiles ( "test/*/*.csproj" ) ) {
40
43
StartProcess ( "dotnet" , new ProcessSettings ( ) {
41
44
WorkingDirectory = testProject . GetDirectory ( ) ,
45
+ EnvironmentVariables = GitVersionEnvironmentVariables ,
42
46
Arguments = new ProcessArgumentBuilder ( )
43
47
. Append ( "xunit" )
44
48
. Append ( "-noshadow" )
49
+ . AppendSwitch ( "-configuration" , configuration )
45
50
. AppendSwitchQuotedSecret ( "-xml" , string . Format ( "{0}/tests/{1}.xml" , artifacts , testProject . GetFilenameWithoutExtension ( ) ) )
46
51
. AppendSwitchQuotedSecret ( "-html" , string . Format ( "{0}/tests/{1}.html" , artifacts , testProject . GetFilenameWithoutExtension ( ) ) )
47
52
} ) ;
48
53
}
49
54
} ) ;
50
55
51
56
Task ( "Coverage" )
52
- . IsDependentOn ( "Build" )
57
+ // .IsDependentOn("Build")
53
58
. Does ( ( ) =>
54
59
{
60
+ CleanDirectory ( artifacts + "/coverage" ) ;
55
61
EnsureDirectoryExists ( artifacts + "/coverage" ) ;
56
62
57
63
foreach ( var testProject in GetFiles ( "test/*/*.csproj" ) ) {
58
- OpenCover ( tool => {
64
+ DotCoverCover ( tool => {
65
+ // tool.XUnit2()
66
+ // tool.StartProcess(Context.Tools.Resolve("dotnet.exe"), new ProcessSettings() {
67
+ // WorkingDirectory = testProject.GetDirectory(),
68
+ // Arguments = new ProcessArgumentBuilder()
69
+ // .Append("test")
70
+ // .AppendSwitch("-c", configuration)
71
+ // .Append("--no-build")
72
+ // .Append("-f net46")
73
+ // });
59
74
tool . StartProcess ( Context . Tools . Resolve ( "dotnet.exe" ) , new ProcessSettings ( ) {
60
75
WorkingDirectory = testProject . GetDirectory ( ) ,
76
+ EnvironmentVariables = GitVersionEnvironmentVariables ,
61
77
Arguments = new ProcessArgumentBuilder ( )
62
- . Append ( "test" )
63
- . Append ( "--no-build" )
64
- . Append ( "-f net46" )
65
-
78
+ . Append ( "xunit" )
79
+ . Append ( "-noshadow" )
80
+ . Append ( "-noautoreporters" )
81
+ // .AppendSwitch("-maxthreads", "1")
82
+ . AppendSwitch ( "-configuration" , configuration )
83
+ . AppendSwitch ( "-framework" , "net46" )
84
+ . AppendSwitchQuotedSecret ( "-xml" , string . Format ( "{0}/tests/{1}.xml" , artifacts , testProject . GetFilenameWithoutExtension ( ) ) )
85
+ . AppendSwitchQuotedSecret ( "-html" , string . Format ( "{0}/tests/{1}.html" , artifacts , testProject . GetFilenameWithoutExtension ( ) ) )
66
86
} ) ;
67
87
} ,
68
- artifacts + "/coverage/coverage.opencover" ,
69
- new OpenCoverSettings ( ) {
70
- Register = "user" ,
71
- MergeOutput = true ,
72
- OldStyle = true ,
88
+ artifacts + "/coverage/coverage-" + testProject . GetFilenameWithoutExtension ( ) + ".dcvr" ,
89
+ new DotCoverCoverSettings ( ) {
90
+ // Register = "user",
91
+ // MergeOutput = true,
92
+ // OldStyle = true,
93
+ TargetWorkingDir = testProject . GetDirectory ( ) ,
73
94
WorkingDirectory = testProject . GetDirectory ( ) ,
95
+ // ReportType = DotCoverReportType.XML
74
96
}
75
- . WithFilter ( "+[JsonRpc*]*" )
76
- . WithFilter ( "+[Lsp*]*" )
77
- . WithFilter ( "-[*.Tests]*" )
97
+ . WithFilter ( "+:JsonRpc" )
98
+ . WithFilter ( "+:Lsp" )
78
99
) ;
79
100
}
101
+
102
+ DotCoverMerge (
103
+ GetFiles ( artifacts + "/coverage/*.dcvr" ) ,
104
+ artifacts + "/coverage/coverage.dcvr"
105
+ ) ;
106
+
107
+ DotCoverReport (
108
+ artifacts + "/coverage/coverage.dcvr" ,
109
+ new FilePath ( artifacts + "/coverage/coverage.html" ) ,
110
+ new DotCoverReportSettings {
111
+ ReportType = DotCoverReportType . HTML
112
+ }
113
+ ) ;
114
+
115
+ DotCoverReport (
116
+ artifacts + "/coverage/coverage.dcvr" ,
117
+ new FilePath ( artifacts + "/coverage/coverage.xml" ) ,
118
+ new DotCoverReportSettings {
119
+ ReportType = DotCoverReportType . DetailedXML
120
+ }
121
+ ) ;
122
+
123
+ var withBom = System . IO . File . ReadAllText ( artifacts + "/coverage/coverage.xml" ) ;
124
+ System . IO . File . WriteAllText ( artifacts + "/coverage/coverage.xml" , withBom . Replace ( _byteOrderMarkUtf8 , "" ) ) ;
80
125
} ) ;
81
126
82
- Task ( "Coveralls [AppVeyor]" )
83
- . IsDependentOn ( "Coverage" )
84
- . WithCriteria ( AppVeyor . IsRunningOnAppVeyor )
127
+ Task ( "Pack" )
128
+ . IsDependentOn ( "Build" )
85
129
. Does ( ( ) => {
86
- CoverallsNet ( artifacts + "/coverage/coverage.opencover" , CoverallsNetReportType . OpenCover , new CoverallsNetSettings ( )
87
- {
88
- RepoToken = EnvironmentVariable ( "coveralls_repo_token" ) ,
89
- UseRelativePaths = true ,
90
- ServiceName = "Appveyor" ,
91
- CommitId = EnvironmentVariable ( "APPVEYOR_REPO_COMMIT" ) ,
92
- CommitBranch = EnvironmentVariable ( "APPVEYOR_REPO_BRANCH" ) ,
93
- CommitAuthor = EnvironmentVariable ( "APPVEYOR_REPO_COMMIT_AUTHOR" ) ,
94
- CommitEmail = EnvironmentVariable ( "APPVEYOR_REPO_COMMIT_AUTHOR_EMAIL" ) ,
95
- CommitMessage = EnvironmentVariable ( "APPVEYOR_REPO_COMMIT_MESSAGE" ) + ( EnvironmentVariable ( "APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED" ) ?? string . Empty ) ,
96
- } ) ;
130
+ EnsureDirectoryExists ( artifacts + "/nuget" ) ;
131
+ foreach ( var project in GetFiles ( "src/*/*.csproj" ) )
132
+ DotNetCorePack ( project . FullPath , new DotNetCorePackSettings
133
+ {
134
+ NoBuild = true ,
135
+ Configuration = configuration ,
136
+ EnvironmentVariables = GitVersionEnvironmentVariables ,
137
+ OutputDirectory = artifacts + "/nuget"
138
+ } ) ;
97
139
} ) ;
98
140
99
- Task ( "Coveralls [TravisCI]" )
100
- . IsDependentOn ( "Coverage" )
101
- . WithCriteria ( TravisCI . IsRunningOnTravisCI )
141
+ Task ( "GitVersion" )
102
142
. Does ( ( ) => {
103
- CoverallsNet ( artifacts + "/coverage/coverage.opencover" , CoverallsNetReportType . OpenCover , new CoverallsNetSettings ( )
104
- {
105
- RepoToken = EnvironmentVariable ( "coveralls_repo_token" ) ,
106
- UseRelativePaths = true ,
107
- ServiceName = "TravisCI" ,
108
- // CommitId = EnvironmentVariable("APPVEYOR_REPO_COMMIT"),
109
- // CommitBranch = EnvironmentVariable("APPVEYOR_REPO_BRANCH"),
110
- // CommitAuthor = EnvironmentVariable("APPVEYOR_REPO_COMMIT_AUTHOR"),
111
- // CommitEmail = EnvironmentVariable("APPVEYOR_REPO_COMMIT_AUTHOR_EMAIL"),
112
- // CommitMessage = EnvironmentVariable("APPVEYOR_REPO_COMMIT_MESSAGE") + (EnvironmentVariable("APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED") ?? string.Empty),
143
+ GitVersion ( new GitVersionSettings ( ) {
144
+ OutputType = GitVersionOutput . BuildServer
113
145
} ) ;
114
146
} ) ;
115
147
116
- Task ( "Coveralls" )
117
- . IsDependentOn ( "Coverage" )
118
- . IsDependentOn ( "Coveralls [TravisCI]" )
119
- . IsDependentOn ( "Coveralls [AppVeyor]" ) ;
120
-
121
-
122
148
Task ( "Default" )
149
+ . IsDependentOn ( "GitVersion" )
123
150
. IsDependentOn ( "Clean" )
124
151
. IsDependentOn ( "Build" )
125
152
. IsDependentOn ( "Test" )
126
- . IsDependentOn ( "Coveralls" ) ;
153
+ . IsDependentOn ( "Coverage" )
154
+ . IsDependentOn ( "Pack" ) ;
127
155
128
156
RunTarget ( target ) ;
0 commit comments