Skip to content

Commit cb1c806

Browse files
iveltenxperiandri
authored andcommitted
Fixing build script to use DotNet cli publishing
1 parent b5c61bb commit cb1c806

File tree

1 file changed

+118
-60
lines changed

1 file changed

+118
-60
lines changed

build.fsx

Lines changed: 118 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,8 @@
1111
#r "nuget: System.Reactive"
1212
#r "nuget: Octokit"
1313

14-
open System
1514
open System.IO
16-
open System.Collections.Generic
17-
open System.Threading
1815
open Fake
19-
open Fake.Tools.Git
2016
open Fake.DotNet
2117
open Fake.DotNet.NuGet
2218
open Fake.IO
@@ -25,8 +21,6 @@ open Fake.IO.Globbing.Operators
2521
open Fake.Core.TargetOperators
2622
open Fake.Tools
2723
open Fake.Core
28-
open Fake.Api
29-
open Octokit
3024

3125
// https://github.com/fsprojects/FAKE/issues/2517
3226
// Regular header and `#load ".fake/build.fsx/intellisense.fsx"`
@@ -50,28 +44,33 @@ execContext
5044
// - to run tests and to publish documentation on GitHub gh-pages
5145
// - for documentation, you also need to edit info in "docs/tools/generate.fsx"
5246

53-
let [<Literal>] DotNetMoniker = "net6.0"
47+
[<Literal>]
48+
let DotNetMoniker = "net6.0"
49+
5450
let project = "FSharp.Data.GraphQL"
5551
let release = ReleaseNotes.load "RELEASE_NOTES.md"
5652
let projectRepo = "https://github.com/fsprojects/FSharp.Data.GraphQL.git"
5753

5854
// --------------------------------------------------------------------------------------
5955
// Clean build results
6056

61-
Target.create "Clean" <| fun _ -> Shell.cleanDirs [ "bin"; "temp" ]
57+
Target.create "Clean"
58+
<| fun _ -> Shell.cleanDirs [ "bin"; "temp" ]
6259

63-
Target.create "CleanDocs" <| fun _ -> Shell.cleanDirs [ "docs/output" ]
60+
Target.create "CleanDocs"
61+
<| fun _ -> Shell.cleanDirs [ "docs/output" ]
6462

6563
// --------------------------------------------------------------------------------------
6664
// Build library & test project
6765

68-
Target.create "Restore" <| fun _ ->
69-
!! "src/**/*.??proj"
70-
-- "src/**/*.shproj"
66+
Target.create "Restore"
67+
<| fun _ ->
68+
!! "src/**/*.??proj" -- "src/**/*.shproj"
7169
|> Seq.iter (fun pattern -> DotNet.restore id pattern)
7270

7371

74-
Target.create "Build" <| fun _ ->
72+
Target.create "Build"
73+
<| fun _ ->
7574
"FSharp.Data.GraphQL.sln"
7675
|> DotNet.build (fun o ->
7776
{ o with
@@ -88,10 +87,18 @@ let startGraphQLServer (project : string) (streamRef : DataRef<Stream>) =
8887

8988
let projectName = Path.GetFileNameWithoutExtension (project)
9089
let projectPath = Path.GetDirectoryName (project)
91-
let serverExe = projectPath </> "bin" </> "Release" </> DotNetMoniker </> (projectName + ".dll")
90+
91+
let serverExe =
92+
projectPath
93+
</> "bin"
94+
</> "Release"
95+
</> DotNetMoniker
96+
</> (projectName + ".dll")
9297

9398
CreateProcess.fromRawCommandLine "dotnet" serverExe
94-
|> CreateProcess.withStandardInput (CreatePipe streamRef) |> Proc.start |> ignore
99+
|> CreateProcess.withStandardInput (CreatePipe streamRef)
100+
|> Proc.start
101+
|> ignore
95102

96103
System.Threading.Thread.Sleep (2000)
97104

@@ -113,30 +120,50 @@ let runTests (project : string) =
113120

114121
let starWarsServerStream = StreamRef.Empty
115122

116-
Target.create "StartStarWarsServer" <| fun _ ->
123+
Target.create "StartStarWarsServer"
124+
<| fun _ ->
117125
Target.activateFinal "StopStarWarsServer"
118-
let project = "samples" </> "star-wars-api" </> "FSharp.Data.GraphQL.Samples.StarWarsApi.fsproj"
126+
127+
let project =
128+
"samples"
129+
</> "star-wars-api"
130+
</> "FSharp.Data.GraphQL.Samples.StarWarsApi.fsproj"
131+
119132
startGraphQLServer project starWarsServerStream
120133

121-
Target.createFinal "StopStarWarsServer" <| fun _ ->
122-
try starWarsServerStream.Value.Write ([| 0uy |], 0, 1)
123-
with e -> printfn "%s" e.Message
134+
Target.createFinal "StopStarWarsServer"
135+
<| fun _ ->
136+
try
137+
starWarsServerStream.Value.Write ([| 0uy |], 0, 1)
138+
with e ->
139+
printfn "%s" e.Message
124140

125141

126142
let integrationServerStream = StreamRef.Empty
127143

128-
Target.create "StartIntegrationServer" <| fun _ ->
144+
Target.create "StartIntegrationServer"
145+
<| fun _ ->
129146
Target.activateFinal "StopIntegrationServer"
130-
let project = "tests" </> "FSharp.Data.GraphQL.IntegrationTests.Server" </> "FSharp.Data.GraphQL.IntegrationTests.Server.fsproj"
147+
148+
let project =
149+
"tests"
150+
</> "FSharp.Data.GraphQL.IntegrationTests.Server"
151+
</> "FSharp.Data.GraphQL.IntegrationTests.Server.fsproj"
152+
131153
startGraphQLServer project integrationServerStream
132154

133-
Target.createFinal "StopIntegrationServer" <| fun _ ->
134-
try integrationServerStream.Value.Write ([| 0uy |], 0, 1)
135-
with e -> printfn "%s" e.Message
155+
Target.createFinal "StopIntegrationServer"
156+
<| fun _ ->
157+
try
158+
integrationServerStream.Value.Write ([| 0uy |], 0, 1)
159+
with e ->
160+
printfn "%s" e.Message
136161

137-
Target.create "RunUnitTests" <| fun _ -> runTests "tests/FSharp.Data.GraphQL.Tests/FSharp.Data.GraphQL.Tests.fsproj"
162+
Target.create "RunUnitTests"
163+
<| fun _ -> runTests "tests/FSharp.Data.GraphQL.Tests/FSharp.Data.GraphQL.Tests.fsproj"
138164

139-
Target.create "RunIntegrationTests" <| fun _ -> runTests "tests/FSharp.Data.GraphQL.IntegrationTests/FSharp.Data.GraphQL.IntegrationTests.fsproj"
165+
Target.create "RunIntegrationTests"
166+
<| fun _ -> runTests "tests/FSharp.Data.GraphQL.IntegrationTests/FSharp.Data.GraphQL.IntegrationTests.fsproj"
140167

141168
let prepareDocGen () =
142169
Shell.rm "docs/release-notes.md"
@@ -149,51 +176,82 @@ let prepareDocGen () =
149176

150177
Shell.cleanDir ".fsdocs"
151178

152-
Target.create "GenerateDocs" <| fun _ ->
179+
Target.create "GenerateDocs"
180+
<| fun _ ->
153181
prepareDocGen ()
154182
DotNet.exec id "fsdocs" "build --clean" |> ignore
155183

156-
Target.create "GenerateDocsWatch" <| fun _ ->
184+
Target.create "GenerateDocsWatch"
185+
<| fun _ ->
157186
prepareDocGen ()
158187
DotNet.exec id "fsdocs" "watch --clean" |> ignore
159188
System.Console.ReadKey () |> ignore
160189

161-
Target.create "ReleaseDocs" <| fun _ ->
190+
Target.create "ReleaseDocs"
191+
<| fun _ ->
162192
Git.Repository.clone "" projectRepo "temp/gh-pages"
163193
Git.Branches.checkoutBranch "temp/gh-pages" "gh-pages"
164-
Shell.copyRecursive "output" "temp/gh-pages" true |> printfn "%A"
165-
Git.CommandHelper.runSimpleGitCommand "temp/gh-pages" "add ." |> printfn "%s"
194+
195+
Shell.copyRecursive "output" "temp/gh-pages" true
196+
|> printfn "%A"
197+
198+
Git.CommandHelper.runSimpleGitCommand "temp/gh-pages" "add ."
199+
|> printfn "%s"
166200

167201
let cmd = sprintf """commit -a -m "Update generated documentation for version %s""" release.NugetVersion
168-
Git.CommandHelper.runSimpleGitCommand "temp/gh-pages" cmd |> printfn "%s"
202+
203+
Git.CommandHelper.runSimpleGitCommand "temp/gh-pages" cmd
204+
|> printfn "%s"
205+
169206
Git.Branches.push "temp/gh-pages"
170207

208+
let getPackageName id = sprintf "%s.%s" project id
209+
210+
let getPackageDir packageName = sprintf "nuget/%s" packageName
211+
212+
let getProjectPath packageName = sprintf "src/%s/%s.fsproj" packageName packageName
213+
171214
let pack id =
172-
Shell.cleanDir <| sprintf "nuget/%s.%s" project id
173-
id |> NuGet.NuGetPack (fun p ->
215+
let packageName = getPackageName id
216+
let packageDir = getPackageDir packageName
217+
let projectPath = getProjectPath packageName
218+
219+
Shell.cleanDir packageDir
220+
221+
projectPath
222+
|> DotNet.pack (fun p ->
174223
{ p with
175-
Version = release.NugetVersion
176-
OutputPath = sprintf "nuget/%s.%s" project id
177-
//IncludeReferencedProjects = false
178-
})
224+
Common = { p.Common with Version = Some release.NugetVersion }
225+
OutputPath = Some packageDir })
179226

180227
let publishPackage id =
181-
pack id
182-
NuGet.NuGetPublish <| fun p -> { p with WorkingDir = sprintf "nuget/%s.%s" project id }
228+
let packageName = getPackageName id
229+
let packageDir = getPackageDir packageName
230+
let projectPath = getProjectPath packageName
231+
232+
projectPath
233+
|> DotNet.publish (fun p -> { p with Common = { p.Common with WorkingDirectory = packageDir } })
234+
235+
Target.create "PublishServer"
236+
<| fun _ -> publishPackage "Server"
183237

184-
Target.create "PublishServer" <| fun _ -> publishPackage "Server"
238+
Target.create "PublishClient"
239+
<| fun _ -> publishPackage "Client"
185240

186-
Target.create "PublishClient" <| fun _ -> publishPackage "Client"
241+
Target.create "PublishMiddleware"
242+
<| fun _ -> publishPackage "Server.Middleware"
187243

188-
Target.create "PublishMiddleware" <| fun _ -> publishPackage "Server.Middleware"
244+
Target.create "PublishShared"
245+
<| fun _ -> publishPackage "Shared"
189246

190-
Target.create "PackShared" <| fun _ -> pack "Shared"
247+
Target.create "PackServer" <| fun _ -> pack "Server"
191248

192-
Target.create "PackServer" <| fun _ -> pack "Server"
249+
Target.create "PackClient" <| fun _ -> pack "Client"
193250

194-
Target.create "PackClient" <| fun _ -> pack "Client"
251+
Target.create "PackMiddleware"
252+
<| fun _ -> pack "Server.Middleware"
195253

196-
Target.create "PackMiddleware" <| fun _ -> pack "Server.Middleware"
254+
Target.create "PackShared" <| fun _ -> pack "Shared"
197255

198256

199257
// --------------------------------------------------------------------------------------
@@ -203,22 +261,22 @@ Target.create "All" ignore
203261
Target.create "PackAll" ignore
204262

205263
"Clean"
206-
==> "Restore"
207-
==> "Build"
208-
==> "RunUnitTests"
209-
==> "StartStarWarsServer"
210-
==> "StartIntegrationServer"
211-
==> "RunIntegrationTests"
212-
==> "All"
213-
=?> ("GenerateDocs", Environment.environVar "APPVEYOR" = "True")
264+
==> "Restore"
265+
==> "Build"
266+
==> "RunUnitTests"
267+
==> "StartStarWarsServer"
268+
==> "StartIntegrationServer"
269+
==> "RunIntegrationTests"
270+
==> "All"
271+
=?> ("GenerateDocs", Environment.environVar "APPVEYOR" = "True")
214272

215273
"CleanDocs" ==> "GenerateDocs"
216274

217275
"PackShared"
218-
==> "PackServer"
219-
==> "PackClient"
220-
==> "PackMiddleware"
221-
==> "PackAll"
276+
==> "PackServer"
277+
==> "PackClient"
278+
==> "PackMiddleware"
279+
==> "PackAll"
222280

223281
Target.runOrDefaultWithArguments "All"
224282

0 commit comments

Comments
 (0)