-
Notifications
You must be signed in to change notification settings - Fork 98
/
Copy pathPackageTasks.fs
114 lines (106 loc) · 5.41 KB
/
PackageTasks.fs
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
module PackageTasks
open ProjectInfo
open MessagePrompts
open BasicTasks
open TestTasks
open BlackFox.Fake
open Fake.Core
open Fake.DotNet
open Fake.IO.Globbing.Operators
let pack = BuildTask.create "Pack" [ clean; build; runTestsAll ] {
projects
|> List.iter (fun pInfo ->
if promptYesNo $"creating stable package for {pInfo.Name}{System.Environment.NewLine}\tpackage version: {pInfo.PackageVersionTag}{System.Environment.NewLine}\tassembly version: {pInfo.AssemblyVersion}{System.Environment.NewLine}\tassembly informational version: {pInfo.AssemblyInformationalVersion}{System.Environment.NewLine} OK?" then
pInfo.ProjFile
|> Fake.DotNet.DotNet.pack (fun p ->
let msBuildParams =
match pInfo.ReleaseNotes with
| Some r ->
{ p.MSBuildParams with
Properties =
([
"Version",pInfo.PackageVersionTag
"AssemblyVersion", pInfo.AssemblyVersion
"AssemblyInformationalVersion", pInfo.AssemblyVersion
"PackageReleaseNotes", (r.Notes |> String.concat "\r\n")
"TargetsForTfmSpecificContentInPackage", "" //https://github.com/dotnet/fsharp/issues/12320
]
@ p.MSBuildParams.Properties)
DisableInternalBinLog = true
}
| _ ->
{ p.MSBuildParams with
Properties =
([
"Version",pInfo.PackageVersionTag
"AssemblyVersion", pInfo.AssemblyVersion
"AssemblyInformationalVersion", pInfo.AssemblyVersion
"TargetsForTfmSpecificContentInPackage", "" //https://github.com/dotnet/fsharp/issues/12320
]
@ p.MSBuildParams.Properties)
DisableInternalBinLog = true
}
{ p with
MSBuildParams = msBuildParams
OutputPath = Some pkgDir
NoBuild = true
}
|> DotNet.Options.withCustomParams (Some "--no-dependencies -tl")
)
else
failwith "aborted"
)
}
let packPrerelease =
BuildTask.create
"PackPrerelease"
[
clean
build
runTestsAll
] {
projects
|> List.iter (fun pInfo ->
printfn $"Please enter pre-release package suffix for {pInfo.Name}"
let prereleaseSuffix = System.Console.ReadLine()
pInfo.PackagePrereleaseTag <- sprintf "%s-%s" pInfo.PackageVersionTag prereleaseSuffix
if promptYesNo $"creating prerelease package for {pInfo.Name}{System.Environment.NewLine}\tpackage version: {pInfo.PackagePrereleaseTag}{System.Environment.NewLine}\tassembly version: {pInfo.AssemblyVersion}{System.Environment.NewLine}\tassembly informational version: {pInfo.AssemblyInformationalVersion}{System.Environment.NewLine} OK?" then
pInfo.ProjFile
|> Fake.DotNet.DotNet.pack (fun p ->
let msBuildParams =
match pInfo.ReleaseNotes with
| Some r ->
{ p.MSBuildParams with
Properties =
([
"Version",pInfo.PackagePrereleaseTag
"AssemblyVersion", pInfo.AssemblyVersion
"InformationalVersion", pInfo.AssemblyInformationalVersion
"PackageReleaseNotes", (r.Notes |> String.concat "\r\n")
"TargetsForTfmSpecificContentInPackage", "" //https://github.com/dotnet/fsharp/issues/12320
])
DisableInternalBinLog = true
}
| _ ->
{ p.MSBuildParams with
Properties =
([
"Version",pInfo.PackagePrereleaseTag
"AssemblyVersion", pInfo.AssemblyVersion
"InformationalVersion", pInfo.AssemblyInformationalVersion
"TargetsForTfmSpecificContentInPackage", "" //https://github.com/dotnet/fsharp/issues/12320
])
DisableInternalBinLog = true
}
{ p with
VersionSuffix = Some prereleaseSuffix
OutputPath = Some pkgDir
MSBuildParams = msBuildParams
NoBuild = true
}
|> DotNet.Options.withCustomParams (Some "--no-dependencies -tl")
)
else
failwith "aborted"
)
}