-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild.fsx
100 lines (80 loc) · 2.82 KB
/
build.fsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
//This is the original SAFE-Stack build script. But it won't compile Net5.0. Net5.0 is needed because of the SignalR stuff..
// #r "paket: groupref build //"
// #load "./.fake/build.fsx/intellisense.fsx"
// #r "netstandard"
// open Fake.Core
// open Fake.DotNet
// open Fake.IO
// open Farmer
// open Farmer.Builders
// Target.initEnvironment ()
// let sharedPath = Path.getFullName "./src/Shared"
// let serverPath = Path.getFullName "./src/Server"
// let deployDir = Path.getFullName "./deploy"
// let sharedTestsPath = Path.getFullName "./tests/Shared"
// let serverTestsPath = Path.getFullName "./tests/Server"
// let npm args workingDir =
// let npmPath =
// match ProcessUtils.tryFindFileOnPath "npm" with
// | Some path -> path
// | None ->
// "npm was not found in path. Please install it and make sure it's available from your path. " +
// "See https://safe-stack.github.io/docs/quickstart/#install-pre-requisites for more info"
// |> failwith
// let arguments = args |> String.split ' ' |> Arguments.OfArgs
// Command.RawCommand (npmPath, arguments)
// |> CreateProcess.fromCommand
// |> CreateProcess.withWorkingDirectory workingDir
// |> CreateProcess.ensureExitCode
// |> Proc.run
// |> ignore
// let dotnet cmd workingDir =
// let result = DotNet.exec (DotNet.Options.withWorkingDirectory workingDir) cmd ""
// if result.ExitCode <> 0 then failwithf "'dotnet %s' failed in %s" cmd workingDir
// Target.create "Clean" (fun _ -> Shell.cleanDir deployDir)
// Target.create "InstallClient" (fun _ -> npm "install" ".")
// Target.create "Bundle" (fun _ ->
// dotnet (sprintf "publish -c Release -o \"%s\"" deployDir) serverPath
// npm "run build" "."
// )
// Target.create "Azure" (fun _ ->
// let web = webApp {
// name "SAFE_Test"
// zip_deploy "deploy"
// }
// let deployment = arm {
// location Location.WestEurope
// add_resource web
// }
// deployment
// |> Deploy.execute "SAFE_Test" Deploy.NoParameters
// |> ignore
// )
// Target.create "Run" (fun _ ->
// dotnet "build" sharedPath
// [ async { dotnet "watch run" serverPath }
// async { npm "run start" "." } ]
// |> Async.Parallel
// |> Async.RunSynchronously
// |> ignore
// )
// Target.create "RunTests" (fun _ ->
// dotnet "build" sharedTestsPath
// [ async { dotnet "watch run" serverTestsPath }
// async { npm "run test:live" "." } ]
// |> Async.Parallel
// |> Async.RunSynchronously
// |> ignore
// )
// open Fake.Core.TargetOperators
// "Clean"
// ==> "InstallClient"
// ==> "Bundle"
// ==> "Azure"
// "Clean"
// ==> "InstallClient"
// ==> "Run"
// "Clean"
// ==> "InstallClient"
// ==> "RunTests"
// Target.runOrDefaultWithArguments "Bundle"