22using System . IO ;
33using System . Linq ;
44using System . Runtime . InteropServices ;
5- using System . Threading . Tasks ;
65using static Bullseye . Targets ;
76using static SimpleExec . Command ;
87
@@ -12,6 +11,7 @@ static class Program
1211 private const string PublishDir = "publish" ;
1312
1413 private const string Clean = nameof ( Clean ) ;
14+ private const string Init = nameof ( Init ) ;
1515 private const string GenerateDocumentation = nameof ( GenerateDocumentation ) ;
1616 private const string Build = nameof ( Build ) ;
1717 private const string RunTests = nameof ( RunTests ) ;
@@ -21,40 +21,26 @@ static class Program
2121
2222 public static void Main ( string [ ] args )
2323 {
24- var buildNumber = GetBuildNumber ( ) ;
25- var branch = GetBranch ( ) ;
26- var commitHash = GetCommitHash ( ) ;
27- var buildMetadata = $ "{ branch } .{ commitHash } ";
2824 var apiKey = Environment . GetEnvironmentVariable ( "MYGET_API_KEY" ) ;
25+ var srcDirectory = new DirectoryInfo ( "./src" ) ;
2926
3027 Target ( Clean , ( ) =>
3128 {
3229 if ( Directory . Exists ( ArtifactsDir ) )
3330 {
3431 Directory . Delete ( ArtifactsDir , true ) ;
3532 }
33+
3634 if ( Directory . Exists ( PublishDir ) )
3735 {
3836 Directory . Delete ( PublishDir , true ) ;
3937 }
40-
4138 } ) ;
4239
4340 Target (
44- GenerateDocumentation ,
41+ Init ,
4542 ( ) =>
4643 {
47- var srcDirectory = new DirectoryInfo ( "./src" ) ;
48-
49- var schemaFiles = srcDirectory . GetFiles ( "*.schema.json" , SearchOption . AllDirectories ) ;
50-
51- var schemaDirectories = schemaFiles
52- . Select ( schemaFile => schemaFile . DirectoryName )
53- . Distinct ( )
54- . Select ( schemaDirectory =>
55- schemaDirectory . Replace ( Path . DirectorySeparatorChar ,
56- '/' ) ) ; // normalize paths; yarn/node can handle forward slashes
57-
5844 if ( RuntimeInformation . IsOSPlatform ( OSPlatform . Windows ) )
5945 {
6046 Run ( "cmd" , "/c yarn" , "docs" ) ;
@@ -63,22 +49,24 @@ public static void Main(string[] args)
6349 {
6450 Run ( "yarn" , string . Empty , "docs" ) ;
6551 }
66-
67- foreach ( var schemaDirectory in schemaDirectories )
68- {
69- Run (
70- "node" ,
71- $ "node_modules/@adobe/jsonschema2md/cli.js -n --input { schemaDirectory } --out { schemaDirectory } --schema-out=-",
72- "docs" ) ;
73- }
7452 } ) ;
7553
54+ Target (
55+ GenerateDocumentation ,
56+ DependsOn ( Init ) ,
57+ ForEach ( SchemaDirectories ( srcDirectory ) ) ,
58+ schemaDirectory =>
59+ RunAsync (
60+ "node" ,
61+ $ "node_modules/@adobe/jsonschema2md/cli.js -n --input { schemaDirectory } --out { schemaDirectory } --schema-out=-",
62+ "docs" ) ) ;
63+
7664 Target (
7765 Build ,
7866 DependsOn ( GenerateDocumentation ) ,
7967 ( ) => Run (
8068 "dotnet" ,
81- $ "build src/SqlStreamStore.HAL.sln -c Release /p:BuildNumber= { buildNumber } /p:BuildMetadata= { buildMetadata } ") ) ;
69+ "build src/SqlStreamStore.HAL.sln -c Release" ) ) ;
8270
8371 Target (
8472 RunTests ,
@@ -92,14 +80,14 @@ public static void Main(string[] args)
9280 DependsOn ( Build ) ,
9381 ( ) => Run (
9482 "dotnet" ,
95- $ "publish --configuration=Release --output=../../{ PublishDir } --runtime=alpine.3.7-x64 /p:ShowLinkerSizeComparison=true /p:BuildNumber= { buildNumber } /p:BuildMetadata= { buildMetadata } src/SqlStreamStore.HAL.DevServer ") ) ;
96-
83+ $ "publish --configuration=Release --output=../../{ PublishDir } --runtime=alpine.3.7-x64 /p:ShowLinkerSizeComparison=true src/SqlStreamStore.HAL.DevServer") ) ;
84+
9785 Target (
9886 Pack ,
9987 DependsOn ( Publish ) ,
10088 ( ) => Run (
10189 "dotnet" ,
102- $ "pack src/SqlStreamStore.HAL -c Release -o ../../{ ArtifactsDir } /p:BuildNumber= { buildNumber } /p:BuildMetadata= { buildMetadata } --no-build") ) ;
90+ $ "pack src/SqlStreamStore.HAL -c Release -o ../../{ ArtifactsDir } --no-build") ) ;
10391
10492 Target (
10593 Push ,
@@ -125,21 +113,13 @@ public static void Main(string[] args)
125113
126114 Target ( "default" , DependsOn ( Clean , RunTests , Push ) ) ;
127115
128- RunTargets ( args ) ;
116+ RunTargets ( args . Concat ( new [ ] { "--parallel" } ) ) ;
129117 }
130118
131- private static string GetBranch ( )
132- => ( Environment . GetEnvironmentVariable ( "TRAVIS_PULL_REQUEST" ) ? . ToLower ( ) == "false"
133- ? null
134- : $ "pr-{ Environment . GetEnvironmentVariable ( "TRAVIS_PULL_REQUEST" ) } ")
135- ?? Environment . GetEnvironmentVariable ( "TRAVIS_BRANCH" )
136- ?? "none" ;
137-
138- private static string GetCommitHash ( )
139- => Environment . GetEnvironmentVariable ( "TRAVIS_PULL_REQUEST_SHA" )
140- ?? Environment . GetEnvironmentVariable ( "TRAVIS_COMMIT" )
141- ?? "none" ;
142-
143- private static string GetBuildNumber ( )
144- => ( Environment . GetEnvironmentVariable ( "TRAVIS_BUILD_NUMBER" ) ?? "0" ) ;
119+ private static string [ ] SchemaDirectories ( DirectoryInfo srcDirectory )
120+ => srcDirectory . GetFiles ( "*.schema.json" , SearchOption . AllDirectories )
121+ . Select ( schemaFile => schemaFile . DirectoryName )
122+ . Distinct ( )
123+ . Select ( schemaDirectory => schemaDirectory . Replace ( Path . DirectorySeparatorChar , '/' ) )
124+ . ToArray ( ) ;
145125}
0 commit comments