@@ -561,7 +561,7 @@ Task("Package")
561
561
562
562
Task( "PackageNugetPackages" )
563
563
. IsDependentOn ( "Build" )
564
- . Does ( ( ) =>
564
+ . Does < BuildConfig > ( ( buildConfig ) =>
565
565
{
566
566
EnsureDirectoryExists ( artifactsPackagesDirectory ) ;
567
567
CleanDirectory ( artifactsPackagesDirectory ) ;
@@ -587,7 +587,7 @@ Task("PackageNugetPackages")
587
587
MSBuildSettings = new DotNetMSBuildSettings ( )
588
588
// configure deterministic build for better compatibility with debug symbols (used in Package/Build tasks). Affects: *.snupkg
589
589
. SetContinuousIntegrationBuild ( continuousIntegrationBuild : true )
590
- . WithProperty ( "PackageVersion" , gitVersion . LegacySemVer )
590
+ . WithProperty ( "PackageVersion" , buildConfig . PackageVersion )
591
591
} ;
592
592
DotNetPack ( projectPath , settings ) ;
593
593
}
@@ -654,6 +654,49 @@ Task("TestsPackagingProjectReference")
654
654
) ;
655
655
} ) ;
656
656
657
+ Task( "SmokeTests" )
658
+ . IsDependentOn ( "PackageNugetPackages" )
659
+ . DoesForEach (
660
+ GetFiles ( "./**/SmokeTests/**/*.SmokeTests*.csproj" ) ,
661
+ action : ( BuildConfig buildConfig , Path testProject ) =>
662
+ {
663
+ var environmentVariables = new Dictionary < string , string >
664
+ {
665
+ { "SmokeTestsPackageSha" , gitVersion . Sha }
666
+ } ;
667
+
668
+ var settings = new DotNetTestSettings
669
+ {
670
+ NoBuild = false ,
671
+ NoRestore = false ,
672
+ Configuration = configuration ,
673
+ ArgumentCustomization = args => args . Append ( $ "-- RunConfiguration.TargetPlatform={ buildConfig . TargetPlatform } ") ,
674
+ Framework = buildConfig . Framework ,
675
+ EnvironmentVariables = environmentVariables ,
676
+ Loggers = CreateLoggers ( )
677
+ } ;
678
+
679
+ var toolSettings = new DotNetToolSettings { EnvironmentVariables = environmentVariables } ;
680
+
681
+ Information ( $ "Updating MongoDB package: { buildConfig . PackageVersion } sha: { gitVersion . Sha } ") ;
682
+
683
+ DotNetTool (
684
+ testProject . FullPath ,
685
+ "add package MongoDB.Driver" ,
686
+ $ "--version [{ buildConfig . PackageVersion } ]",
687
+ toolSettings ) ;
688
+
689
+ DotNetTest (
690
+ testProject . FullPath ,
691
+ settings ) ;
692
+ } ) ;
693
+
694
+ Task( "SmokeTestsNet472" ) . IsDependentOn ( "SmokeTests" ) ;
695
+ Task( "SmokeTestsNetCoreApp21" ) . IsDependentOn ( "SmokeTests" ) ;
696
+ Task( "SmokeTestsNetCoreApp31" ) . IsDependentOn ( "SmokeTests" ) ;
697
+ Task( "SmokeTestsNet50" ) . IsDependentOn ( "SmokeTests" ) ;
698
+ Task( "SmokeTestsNet60" ) . IsDependentOn ( "SmokeTests" ) ;
699
+
657
700
Task( "TestsPackaging" )
658
701
. IsDependentOn ( "TestsPackagingProjectReference" )
659
702
. IsDependentOn ( "Package" )
@@ -866,16 +909,20 @@ Setup<BuildConfig>(
866
909
// in a different directory with a x64 dotnet host process. This would further complicate our testing for little additional gain.
867
910
var framework = targetPlatform == "arm64" ? "net6.0" : lowerTarget switch
868
911
{
869
- string s when s . StartsWith ( "test" ) && s . EndsWith ( "net472" ) => "net472" ,
870
- string s when s . StartsWith ( "test" ) && s . EndsWith ( "netstandard20" ) => "netcoreapp2.1" ,
871
- string s when s . StartsWith ( "test" ) && s . EndsWith ( "netstandard21" ) => "netcoreapp3.1" ,
872
- string s when s . StartsWith ( "test" ) && s . EndsWith ( "net60" ) => "net6.0" ,
912
+ string s when s . EndsWith ( "net472" ) => "net472" ,
913
+ string s when s . EndsWith ( "netstandard20" ) || s . EndsWith ( "netcoreapp21" ) => "netcoreapp2.1" ,
914
+ string s when s . EndsWith ( "netstandard21" ) || s . EndsWith ( "netcoreapp31" ) => "netcoreapp3.1" ,
915
+ string s when s . EndsWith ( "net472" ) => "net472" ,
916
+ string s when s . EndsWith ( "net50" ) => "net5.0" ,
917
+ string s when s . EndsWith ( "net60" ) => "net6.0" ,
873
918
_ => null
874
919
} ;
875
920
876
921
var isReleaseMode = lowerTarget . StartsWith ( "package" ) || lowerTarget == "release" ;
877
- Console . WriteLine ( $ "Framework: { framework ?? "null (not set)" } , TargetPlatform: { targetPlatform } , IsReleaseMode: { isReleaseMode } ") ;
878
- return new BuildConfig ( isReleaseMode , framework , targetPlatform ) ;
922
+ var packageVersion = lowerTarget . StartsWith ( "smoketests" ) ? gitVersion . FullSemVer . Replace ( '+' , '-' ) : gitVersion . LegacySemVer ;
923
+
924
+ Console . WriteLine ( $ "Framework: { framework ?? "null (not set)" } , TargetPlatform: { targetPlatform } , IsReleaseMode: { isReleaseMode } , PackageVersion: { packageVersion } ") ;
925
+ return new BuildConfig ( isReleaseMode , framework , targetPlatform , packageVersion ) ;
879
926
} ) ;
880
927
881
928
RunTarget( target ) ;
@@ -884,13 +931,15 @@ public class BuildConfig
884
931
{
885
932
public bool IsReleaseMode { get ; }
886
933
public string Framework { get ; }
934
+ public string PackageVersion { get ; }
887
935
public string TargetPlatform { get ; }
888
936
889
- public BuildConfig( bool isReleaseMode , string framework , string targetPlatform )
937
+ public BuildConfig ( bool isReleaseMode , string framework , string targetPlatform , string packageVersion )
890
938
{
891
939
IsReleaseMode = isReleaseMode ;
892
940
Framework = framework ;
893
941
TargetPlatform = targetPlatform ;
942
+ PackageVersion = packageVersion ;
894
943
}
895
944
}
896
945
0 commit comments