Skip to content

Commit a3f45ca

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

File tree

1 file changed

+86
-44
lines changed

1 file changed

+86
-44
lines changed

build.fsx

+86-44
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,15 @@
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
21-
open Fake.DotNet.NuGet
2217
open Fake.IO
2318
open Fake.IO.FileSystemOperators
2419
open Fake.IO.Globbing.Operators
2520
open Fake.Core.TargetOperators
2621
open Fake.Tools
2722
open Fake.Core
28-
open Fake.Api
29-
open Octokit
3023

3124
// https://github.com/fsprojects/FAKE/issues/2517
3225
// Regular header and `#load ".fake/build.fsx/intellisense.fsx"`
@@ -50,28 +43,29 @@ execContext
5043
// - to run tests and to publish documentation on GitHub gh-pages
5144
// - for documentation, you also need to edit info in "docs/tools/generate.fsx"
5245

53-
let [<Literal>] DotNetMoniker = "net6.0"
46+
[<Literal>]
47+
let DotNetMoniker = "net6.0"
48+
5449
let project = "FSharp.Data.GraphQL"
5550
let release = ReleaseNotes.load "RELEASE_NOTES.md"
5651
let projectRepo = "https://github.com/fsprojects/FSharp.Data.GraphQL.git"
5752

5853
// --------------------------------------------------------------------------------------
5954
// Clean build results
6055

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

6358
Target.create "CleanDocs" <| fun _ -> Shell.cleanDirs [ "docs/output" ]
6459

6560
// --------------------------------------------------------------------------------------
6661
// Build library & test project
6762

68-
Target.create "Restore" <| fun _ ->
69-
!! "src/**/*.??proj"
70-
-- "src/**/*.shproj"
63+
Target.create "Restore" <| fun _ ->
64+
!! "src/**/*.??proj" -- "src/**/*.shproj"
7165
|> Seq.iter (fun pattern -> DotNet.restore id pattern)
7266

7367

74-
Target.create "Build" <| fun _ ->
68+
Target.create "Build" <| fun _ ->
7569
"FSharp.Data.GraphQL.sln"
7670
|> DotNet.build (fun o ->
7771
{ o with
@@ -88,10 +82,18 @@ let startGraphQLServer (project : string) (streamRef : DataRef<Stream>) =
8882

8983
let projectName = Path.GetFileNameWithoutExtension (project)
9084
let projectPath = Path.GetDirectoryName (project)
91-
let serverExe = projectPath </> "bin" </> "Release" </> DotNetMoniker </> (projectName + ".dll")
85+
86+
let serverExe =
87+
projectPath
88+
</> "bin"
89+
</> "Release"
90+
</> DotNetMoniker
91+
</> (projectName + ".dll")
9292

9393
CreateProcess.fromRawCommandLine "dotnet" serverExe
94-
|> CreateProcess.withStandardInput (CreatePipe streamRef) |> Proc.start |> ignore
94+
|> CreateProcess.withStandardInput (CreatePipe streamRef)
95+
|> Proc.start
96+
|> ignore
9597

9698
System.Threading.Thread.Sleep (2000)
9799

@@ -115,28 +117,43 @@ let starWarsServerStream = StreamRef.Empty
115117

116118
Target.create "StartStarWarsServer" <| fun _ ->
117119
Target.activateFinal "StopStarWarsServer"
118-
let project = "samples" </> "star-wars-api" </> "FSharp.Data.GraphQL.Samples.StarWarsApi.fsproj"
120+
121+
let project =
122+
"samples"
123+
</> "star-wars-api"
124+
</> "FSharp.Data.GraphQL.Samples.StarWarsApi.fsproj"
125+
119126
startGraphQLServer project starWarsServerStream
120127

121128
Target.createFinal "StopStarWarsServer" <| fun _ ->
122-
try starWarsServerStream.Value.Write ([| 0uy |], 0, 1)
123-
with e -> printfn "%s" e.Message
124-
129+
try
130+
starWarsServerStream.Value.Write ([| 0uy |], 0, 1)
131+
with e ->
132+
printfn "%s" e.Message
125133

126134
let integrationServerStream = StreamRef.Empty
127135

128136
Target.create "StartIntegrationServer" <| fun _ ->
129137
Target.activateFinal "StopIntegrationServer"
130-
let project = "tests" </> "FSharp.Data.GraphQL.IntegrationTests.Server" </> "FSharp.Data.GraphQL.IntegrationTests.Server.fsproj"
138+
139+
let project =
140+
"tests"
141+
</> "FSharp.Data.GraphQL.IntegrationTests.Server"
142+
</> "FSharp.Data.GraphQL.IntegrationTests.Server.fsproj"
143+
131144
startGraphQLServer project integrationServerStream
132145

133146
Target.createFinal "StopIntegrationServer" <| fun _ ->
134-
try integrationServerStream.Value.Write ([| 0uy |], 0, 1)
135-
with e -> printfn "%s" e.Message
147+
try
148+
integrationServerStream.Value.Write ([| 0uy |], 0, 1)
149+
with e ->
150+
printfn "%s" e.Message
136151

137-
Target.create "RunUnitTests" <| fun _ -> runTests "tests/FSharp.Data.GraphQL.Tests/FSharp.Data.GraphQL.Tests.fsproj"
152+
Target.create "RunUnitTests" <| fun _ ->
153+
runTests "tests/FSharp.Data.GraphQL.Tests/FSharp.Data.GraphQL.Tests.fsproj"
138154

139-
Target.create "RunIntegrationTests" <| fun _ -> runTests "tests/FSharp.Data.GraphQL.IntegrationTests/FSharp.Data.GraphQL.IntegrationTests.fsproj"
155+
Target.create "RunIntegrationTests" <| fun _ ->
156+
runTests "tests/FSharp.Data.GraphQL.IntegrationTests/FSharp.Data.GraphQL.IntegrationTests.fsproj"
140157

141158
let prepareDocGen () =
142159
Shell.rm "docs/release-notes.md"
@@ -149,7 +166,7 @@ let prepareDocGen () =
149166

150167
Shell.cleanDir ".fsdocs"
151168

152-
Target.create "GenerateDocs" <| fun _ ->
169+
Target.create "GenerateDocs" <| fun _ ->
153170
prepareDocGen ()
154171
DotNet.exec id "fsdocs" "build --clean" |> ignore
155172

@@ -158,42 +175,66 @@ Target.create "GenerateDocsWatch" <| fun _ ->
158175
DotNet.exec id "fsdocs" "watch --clean" |> ignore
159176
System.Console.ReadKey () |> ignore
160177

161-
Target.create "ReleaseDocs" <| fun _ ->
178+
Target.create "ReleaseDocs" <| fun _ ->
162179
Git.Repository.clone "" projectRepo "temp/gh-pages"
163180
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"
181+
182+
Shell.copyRecursive "output" "temp/gh-pages" true
183+
|> printfn "%A"
184+
185+
Git.CommandHelper.runSimpleGitCommand "temp/gh-pages" "add ."
186+
|> printfn "%s"
166187

167188
let cmd = sprintf """commit -a -m "Update generated documentation for version %s""" release.NugetVersion
168-
Git.CommandHelper.runSimpleGitCommand "temp/gh-pages" cmd |> printfn "%s"
189+
190+
Git.CommandHelper.runSimpleGitCommand "temp/gh-pages" cmd
191+
|> printfn "%s"
192+
169193
Git.Branches.push "temp/gh-pages"
170194

195+
let getPackageName id = sprintf "%s.%s" project id
196+
197+
let getPackageDir packageName = sprintf "nuget/%s" packageName
198+
199+
let getProjectPath packageName = sprintf "src/%s/%s.fsproj" packageName packageName
200+
171201
let pack id =
172-
Shell.cleanDir <| sprintf "nuget/%s.%s" project id
173-
id |> NuGet.NuGetPack (fun p ->
202+
let packageName = getPackageName id
203+
let packageDir = getPackageDir packageName
204+
let projectPath = getProjectPath packageName
205+
206+
Shell.cleanDir packageDir
207+
208+
projectPath
209+
|> DotNet.pack (fun p ->
174210
{ p with
175-
Version = release.NugetVersion
176-
OutputPath = sprintf "nuget/%s.%s" project id
177-
//IncludeReferencedProjects = false
178-
})
211+
Common = { p.Common with Version = Some release.NugetVersion }
212+
OutputPath = Some packageDir })
179213

180214
let publishPackage id =
181-
pack id
182-
NuGet.NuGetPublish <| fun p -> { p with WorkingDir = sprintf "nuget/%s.%s" project id }
215+
let packageName = getPackageName id
216+
let packageDir = getPackageDir packageName
217+
let projectPath = getProjectPath packageName
183218

184-
Target.create "PublishServer" <| fun _ -> publishPackage "Server"
219+
projectPath
220+
|> DotNet.publish (fun p ->
221+
{ p with Common = { p.Common with WorkingDirectory = packageDir } })
185222

186-
Target.create "PublishClient" <| fun _ -> publishPackage "Client"
223+
Target.create "PublishServer" <| fun _ -> publishPackage "Server"
224+
225+
Target.create "PublishClient" <| fun _ -> publishPackage "Client"
187226

188227
Target.create "PublishMiddleware" <| fun _ -> publishPackage "Server.Middleware"
189228

190-
Target.create "PackShared" <| fun _ -> pack "Shared"
229+
Target.create "PublishShared" <| fun _ -> publishPackage "Shared"
230+
231+
Target.create "PackServer" <| fun _ -> pack "Server"
191232

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

194-
Target.create "PackClient" <| fun _ -> pack "Client"
235+
Target.create "PackMiddleware" <| fun _ -> pack "Server.Middleware"
195236

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

198239

199240
// --------------------------------------------------------------------------------------
@@ -212,7 +253,8 @@ Target.create "PackAll" ignore
212253
==> "All"
213254
=?> ("GenerateDocs", Environment.environVar "APPVEYOR" = "True")
214255

215-
"CleanDocs" ==> "GenerateDocs"
256+
"CleanDocs"
257+
==> "GenerateDocs"
216258

217259
"PackShared"
218260
==> "PackServer"

0 commit comments

Comments
 (0)