-
Notifications
You must be signed in to change notification settings - Fork 22
/
build.fsx
118 lines (85 loc) · 3.07 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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#r "packages/FAKE/tools/FakeLib.dll" // include Fake lib
#r "packages/GitVersion/Lib/Net45/GitVersionCore.dll"
#r "packages/LibGit2Sharp/lib/net40/LibGit2Sharp.dll"
open GitVersion
open Fake
open Fake.NuGet.Install
open System.Collections.Generic
open System
#load "helpers.fsx"
open Helpers
let solution = ("../src/SourceBrowser.sln" |> FullNameFromHere)
let mutable semanticVersion : SemanticVersion = null
let mutable semanticVersionVariables : Dictionary<string, string> = null
let mutable nugetVersion : string = ""
Target "Restore" (fun _ ->
CustomRestorePackage solution
)
Target "Build" (fun _ ->
let buildMode = getBuildParamOrDefault "buildMode" "Release"
let setParams defaults =
{ defaults with
Verbosity = Some(MSBuildVerbosity.Normal)
Targets = ["Build"]
Properties =
[
"Configuration", buildMode
]
}
build setParams solution
)
Target "Versioning" (fun _ ->
let log (s :string) = System.Console.WriteLine(s)
let action = (System.Action<string> log)
GitVersion.Logger.WriteInfo <- action
GitVersion.Logger.WriteWarning <- action
GitVersion.Logger.WriteError <- action
let dir = (".." |> FullNameFromHere)
let repo =
RepositoryLoader.GetRepo(dir)
let servers = GitVersion.BuildServerList.GetApplicableBuildServers(GitVersion.Authentication())
for server in servers do
server.PerformPreProcessingSteps (dir) |> ignore
semanticVersion <- GitVersionFinder.GetSemanticVersion(repo)
for server in servers do
server.WriteIntegration(semanticVersion, action) |> ignore
semanticVersionVariables <- VariableProvider.GetVariablesFor(semanticVersion)
BulkReplaceAssemblyInfoVersions (".." |> FullNameFromHere) (fun f ->
{f with
AssemblyVersion = semanticVersionVariables.["AssemblySemVer"]
AssemblyFileVersion = semanticVersionVariables.["AssemblySemVer"]
AssemblyInformationalVersion = semanticVersionVariables.["SemVer"]
})
)
Target "Pack" (fun _ ->
nugetVersion <- (sprintf "%s-beta"semanticVersionVariables.["NuGetVersionV2"])
CusomtNuGetPack ("../src/SourceBrowser.Generator/SourceBrowser.Generator.csproj" |> FullNameFromHere) nugetVersion "Release"
)
Target "Test" (fun _ ->
trace "test stuff..."
)
Target "Publish" (fun _ ->
let setParams (defaults : NuGetParams) =
{ defaults with
AccessKey = environVar "NUGET_APIKEY"
OutputPath = (".." |> FullNameFromHere)
WorkingDir = (".." |> FullNameFromHere)
Project = "SourceBrowser.Generator"
Version = nugetVersion
}
NuGetPublish setParams
)
"Build"
==> "Test"
"Restore"
==> "Build"
"Versioning"
==> "Build"
"Build"
==> "Pack"
"Pack"
==> "Publish"
if((environVar "APPVEYOR_REPO_TAG") = "True") then
Run "Publish"
else
Run "Pack"