1- using System ;
21using System . Collections . Generic ;
32using System . Diagnostics ;
4- using System . IO ;
5- using System . Linq ;
63using Nuke . Common ;
74using Nuke . Common . CI ;
85using Nuke . Common . Execution ;
@@ -31,7 +28,7 @@ partial class Build : NukeBuild
3128 readonly Configuration Configuration = IsLocalBuild ? Configuration . Debug : Configuration . Release ;
3229
3330 [ GitRepository ] readonly GitRepository GitRepository ;
34- [ GitVersion ( Framework = "netcoreapp3.0" ) ] readonly GitVersion GitVersion ;
31+ [ GitVersion ] readonly GitVersion GitVersion ;
3532
3633 [ Parameter ] readonly bool Deterministic ;
3734
@@ -44,11 +41,9 @@ partial class Build : NukeBuild
4441 AbsolutePath TestsDirectory => RootDirectory / "tests" ;
4542 AbsolutePath ArtifactsDirectory => RootDirectory / "artifacts" ;
4643 AbsolutePath TestResultsDirectory => ArtifactsDirectory / "testresults" ;
47- AbsolutePath CoverageDirectory => ArtifactsDirectory / "coverage" ;
4844 AbsolutePath ReportsDirectory => ArtifactsDirectory / "reports" ;
4945 AbsolutePath PackagesDirectory => ArtifactsDirectory / "packages" ;
5046
51- IEnumerable < Project > TestProjects => Solution . GetProjects ( "*Tests" ) ;
5247 IReadOnlyCollection < AbsolutePath > Packages => PackagesDirectory . GlobFiles ( "*.nupkg" ) ;
5348
5449 Target Clean => _ => _
@@ -65,7 +60,9 @@ partial class Build : NukeBuild
6560 . Executes ( ( ) =>
6661 {
6762 DotNetRestore ( s => s
68- . SetProjectFile ( Solution ) ) ;
63+ . SetProjectFile ( Solution )
64+ . SetProcessArgumentConfigurator ( a => a
65+ . Add ( "/p:CheckEolTargetFramework=false" ) ) ) ;
6966 } ) ;
7067
7168 Target Compile => _ => _
@@ -80,71 +77,43 @@ partial class Build : NukeBuild
8077 . SetInformationalVersion ( GitVersion . InformationalVersion )
8178 . SetNoRestore ( FinishedTargets . Contains ( Restore ) )
8279 . SetContinuousIntegrationBuild ( IsServerBuild || Deterministic )
83- . SetDeterministic ( IsServerBuild || Deterministic ) ) ;
80+ . SetDeterministic ( IsServerBuild || Deterministic )
81+ . SetProcessArgumentConfigurator ( a => a
82+ . Add ( "/p:CheckEolTargetFramework=false" ) ) ) ;
8483 } ) ;
8584
8685 Target Test => _ => _
8786 . DependsOn ( Compile )
8887 . Produces ( TestResultsDirectory / "*.trx" )
89- . Produces ( CoverageDirectory / "*.xml" )
9088 . Executes ( ( ) =>
9189 {
9290 DotNetTest ( s => s
93- . SetFramework ( "net461" )
94- . SetConfiguration ( Configuration )
95- . SetNoBuild ( FinishedTargets . Contains ( Compile ) )
96- . ResetVerbosity ( )
97- . SetLogger ( "trx" )
98- . SetUseSourceLink ( IsServerBuild )
99- . SetResultsDirectory ( TestResultsDirectory )
100- . SetProcessArgumentConfigurator ( a => a
101- . Add ( "-- RunConfiguration.DisableAppDomain=true" )
102- . Add ( "-- RunConfiguration.NoAutoReporters=true" ) )
103- . When ( InvokedTargets . Contains ( Cover ) , _ => _
104- . EnableCollectCoverage ( )
105- . SetCoverletOutputFormat ( CoverletOutputFormat . cobertura )
106- . When ( IsServerBuild || Deterministic , _ => _
107- . SetProcessArgumentConfigurator ( a => a
108- . Add ( "/p:DeterministicReport=true" ) ) ) )
109- . CombineWith ( TestProjects , ( _ , v ) => _
110- . SetProjectFile ( v )
111- . When ( InvokedTargets . Contains ( Cover ) , _ => _
112- . SetCoverletOutput ( CoverageDirectory / $ "{ v . Name } .xml") ) ) ) ;
113-
114- DotNetTest ( s => s
115- . SetFramework ( "net5.0" )
91+ . SetProjectFile ( Solution )
11692 . SetConfiguration ( Configuration )
11793 . SetNoBuild ( FinishedTargets . Contains ( Compile ) )
11894 . ResetVerbosity ( )
11995 . SetResultsDirectory ( TestResultsDirectory )
120- . SetLogger ( "trx" )
96+ . SetLoggers ( "trx" )
12197 . SetUseSourceLink ( IsServerBuild )
12298 . SetProcessArgumentConfigurator ( a => a
99+ . Add ( "/p:CheckEolTargetFramework=false" )
123100 . Add ( "-- RunConfiguration.DisableAppDomain=true" )
124101 . Add ( "-- RunConfiguration.NoAutoReporters=true" ) )
125102 . When ( InvokedTargets . Contains ( Cover ) , _ => _
126103 . SetDataCollector ( "XPlat Code Coverage" )
127- . When ( IsServerBuild || Deterministic , _ => _
128- . SetProcessArgumentConfigurator ( a => a
129- . Add ( "/p:DeterministicReport=true" ) ) ) )
130- . CombineWith ( TestProjects , ( _ , p ) => _
131- . SetProjectFile ( p )
132- . When ( InvokedTargets . Contains ( Cover ) , _ => _
133- . SetResultsDirectory ( TestResultsDirectory / $ "{ p . Name } .{ _ . Framework } ") ) ) ) ;
104+ . When ( IsServerBuild || Deterministic , _ => _
105+ . SetProcessArgumentConfigurator ( a => a
106+ . Add ( "/p:DeterministicReport=true" ) ) ) ) ) ;
134107
135108 Debug . Assert (
136- TestResultsDirectory . GlobFiles ( "**\\ *.trx" ) . Count > 0 ,
109+ TestResultsDirectory . GlobFiles ( "**/ *.trx" ) . Count > 0 ,
137110 "No trx files were generated." ) ;
138111
139- TestResultsDirectory . GlobFiles ( "**\\ *.xml" )
140- . Where ( x => Guid . TryParse ( x . GetParentDirectoryName ( ) , out var _ ) )
141- . ForEach ( x => File . Copy ( x , CoverageDirectory / $ "{ x . Parent . GetParentDirectoryName ( ) } .xml", true ) ) ;
142-
143112 if ( InvokedTargets . Contains ( Cover ) )
144113 {
145114 Debug . Assert (
146- CoverageDirectory . GlobFiles ( "**\\ * .xml" ) . Count > 0 ,
147- "No xml coverage files were generated." ) ;
115+ TestResultsDirectory . GlobFiles ( "**/coverage.cobertura .xml" ) . Count > 0 ,
116+ "No cobertura files generated." ) ;
148117 }
149118 } ) ;
150119
@@ -156,7 +125,7 @@ partial class Build : NukeBuild
156125 {
157126 ReportGenerator ( _ => _
158127 . SetFramework ( "net5.0" )
159- . SetReports ( CoverageDirectory / "*.xml" )
128+ . SetReports ( TestResultsDirectory / "**" / "coverage.cobertura .xml")
160129 . SetTargetDirectory ( ReportsDirectory )
161130 . SetReportTypes ( "lcov" , ReportTypes . HtmlInline ) ) ;
162131 } ) ;
0 commit comments