Skip to content

Commit ac99373

Browse files
committed
switch back to old nunit/nuget
1 parent cdf5671 commit ac99373

4 files changed

Lines changed: 96 additions & 43 deletions

File tree

XakeLibTests/XakeLibTests.fsproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@
9595
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And $(TargetFrameworkVersion) == 'v4.0'">
9696
<ItemGroup>
9797
<Reference Include="nunit.framework">
98-
<HintPath>..\packages\NUnit\lib\net40\nunit.framework.dll</HintPath>
98+
<HintPath>..\packages\NUnit\lib\nunit.framework.dll</HintPath>
9999
<Private>True</Private>
100100
<Paket>True</Paket>
101101
</Reference>

build.fsx

Lines changed: 75 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -10,43 +10,66 @@ let TestsAssembly = "bin/XakeLibTests.dll"
1010
let (=?) value deflt = match value with |Some v -> v |None -> deflt
1111

1212
let DEF_VER = "0.0.1"
13-
let makePackageName () = recipe {
14-
let! ver = getEnv("VER")
15-
return sprintf "Xake.%s.nupkg" (ver =? DEF_VER)
16-
}
17-
let paket args = system (useClr >> checkErrorLevel) ".paket/paket.exe" args |> Action.Ignore
13+
14+
let nuget_exe args = system (useClr >> checkErrorLevel) "packages/NuGet.CommandLine/tools/NuGet.exe" args |> Action.Ignore
15+
16+
module nuget =
17+
module private impl =
18+
let newline = System.Environment.NewLine
19+
let wrapXml node value = sprintf "<%s>%s</%s>" node value node
20+
let wrapXmlNl node (value:string) =
21+
let attrs = value.Split([|newline|], System.StringSplitOptions.None) |> Seq.ofArray
22+
let content = attrs |> Seq.map ((+) " ") |> String.concat newline
23+
sprintf "<%s>%s</%s>" node (newline + content + newline) node
24+
let toXmlStr (node,value) = wrapXml node value
25+
26+
open impl
27+
28+
let dependencies deps =
29+
"dependencies", newline
30+
+ (deps |> List.map (fun (s,v) -> sprintf """<dependency id="%s" version="%s" />""" s v) |> String.concat newline)
31+
+ newline
32+
33+
let metadata = List.map toXmlStr >> String.concat newline >> wrapXmlNl "metadata"
34+
let files = List.map (fun(f,t) -> (f,t) ||> sprintf """<file src="%s" target="%s" />""") >> String.concat newline >> wrapXmlNl "files"
35+
let target t ff = ff |> List.map (fun file -> file,t)
36+
let package = String.concat newline >> wrapXmlNl "package" >> ((+) ("<?xml version=\"1.0\"?>" + newline))
1837

1938
do xake {ExecOptions.Default with ConLogLevel = Verbosity.Diag } {
2039
var "NETFX-TARGET" "4.5"
2140
filelog "build.log" Verbosity.Diag
2241

2342
rules [
24-
"main" => recipe {
43+
"main" => action {
2544
do! need ["build"]
2645
do! need ["test"]
2746
}
2847

2948
"build" <== [TestsAssembly; "bin/Xake.Core.dll"]
30-
"clean" => rm ["bin/*.*"]
49+
"clean" => action {
50+
do! rm ["bin/*.*"]
51+
}
3152

32-
"test" => recipe {
33-
do! alwaysRerun()
53+
"test" => action {
3454
do! need[TestsAssembly]
35-
do! system (useClr >> checkErrorLevel >> workingDir "bin") "packages/NUnit.ConsoleRunner/tools/nunit3-console.exe" ["XakeLibTests.dll"] |> Action.Ignore
55+
// do! system (useClr >> checkErrorLevel) "packages/NUnit.ConsoleRunner/tools/nunit3-console.exe" [TestsAssembly; "--work=bin"] |> Action.Ignore
56+
do! system (useClr >> checkErrorLevel) "packages/NUnit.ConsoleRunner/tools/nunit3-console.exe" [TestsAssembly] |> Action.Ignore
3657
}
3758

38-
("bin/FSharp.Core.dll") ..> (WhenError ignore <| recipe {
39-
do! copyFrom "packages/FSharp.Core/lib/net40/FSharp.Core.dll"
59+
("bin/FSharp.Core.dll") *> fun outfile ->
60+
WhenError ignore <| action {
61+
do! copyFile "packages/FSharp.Core/lib/net40/FSharp.Core.dll" outfile.FullName
4062
do! copyFiles ["packages/FSharp.Core/lib/net40/FSharp.Core.*data"] "bin"
41-
})
63+
}
4264

43-
("bin/nunit.framework.dll") ..> copyFrom "packages/NUnit/lib/net40/nunit.framework.dll"
65+
("bin/nunit.framework.dll") *> fun outfile -> action {
66+
do! copyFile "packages/NUnit/lib/nunit.framework.dll" outfile.FullName
67+
}
4468

45-
"bin/Xake.Core.dll" ..> recipe {
69+
"bin/Xake.Core.dll" *> fun file -> action {
4670

4771
// TODO multitarget rule!
4872
let xml = "bin/Xake.Core.XML" // file.FullName .- "XML"
49-
let! file = getTargetFile()
5073

5174
let sources = fileset {
5275
basedir "core"
@@ -91,10 +114,9 @@ do xake {ExecOptions.Default with ConLogLevel = Verbosity.Diag } {
91114

92115
}
93116

94-
TestsAssembly ..> recipe {
117+
TestsAssembly *> fun file -> action {
95118

96119
// TODO --doc:..\bin\Xake.Core.XML --- multitarget rule!
97-
let! file = getTargetFile()
98120

99121
let sources = fileset {
100122
basedir "XakeLibTests"
@@ -124,30 +146,47 @@ do xake {ExecOptions.Default with ConLogLevel = Verbosity.Diag } {
124146

125147
(* Nuget publishing rules *)
126148
rules [
127-
"nuget-pack" => recipe {
128-
let! package_name = makePackageName ()
129-
do! need [package_name]
149+
"nuget-pack" => action {
150+
151+
let libFiles = ["bin/Xake.Core.dll"]
152+
do! need libFiles
153+
154+
let! ver = getEnv("VER")
155+
156+
let nuspec =
157+
nuget.package [
158+
nuget.metadata [
159+
"id", "Xake"
160+
"version", ver =? DEF_VER
161+
"authors", "OlegZee"
162+
"owners", "OlegZee"
163+
"projectUrl", "https://github.com/OlegZee/Xake"
164+
"requireLicenseAcceptance", "false"
165+
"description", "Xake build tool"
166+
"releaseNotes", ""
167+
"copyright", sprintf "Copyright %i" System.DateTime.Now.Year
168+
"tags", "Xake F# Build"
169+
nuget.dependencies []
170+
]
171+
nuget.files (libFiles |> nuget.target "tools")
172+
]
173+
174+
let nuspec_file = "_.nuspec"
175+
do System.IO.Directory.CreateDirectory("nupkg") |> ignore
176+
do System.IO.File.WriteAllText(nuspec_file, nuspec)
177+
178+
do! nuget_exe ["pack"; nuspec_file; "-OutputDirectory"; "nupkg" ]
130179
}
131180

132-
"Xake.(ver:*).nupkg" ..> recipe {
133-
do! need ["bin/Xake.Core.dll"]
134-
let! ver = getRuleMatch("ver")
135-
do! paket ["pack"; "version"; ver; "output"; "." ]
136-
}
181+
"nuget-push" => action {
137182

138-
"nuget-push" => recipe {
183+
do! need ["nuget-pack"]
139184

140-
let! package_name = makePackageName ()
141-
do! need [package_name]
185+
let! ver = getEnv("VER")
186+
let package_name = sprintf "Xake.%s.nupkg" (ver =? DEF_VER)
142187

143188
let! nuget_key = getEnv("NUGET_KEY")
144-
do! paket
145-
[
146-
"push"
147-
"url"; "https://www.nuget.org/api/v2/package"
148-
"file"; package_name
149-
"apikey"; nuget_key =? ""
150-
]
189+
do! nuget_exe ["push"; "nupkg" </> package_name; nuget_key =? ""; "-Source"; "https://www.nuget.org/api/v2/package"]
151190
}
152191
]
153192
}

paket.dependencies

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
framework: net40
1+
framework: 40
22
source https://www.nuget.org/api/v2/
33

44
nuget FSharp.Core 3.1.2.5
5-
nuget NUnit.ConsoleRunner
6-
nuget nunit
7-
nuget Xake 0.9.1
5+
nuget NUnit.Runners
6+
nuget Nuget.CommandLine
7+
nuget nunit 2.6.3
8+
nuget Xake 0.8.2

paket.lock

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,19 @@ FRAMEWORK: NET40
22
NUGET
33
remote: https://www.nuget.org/api/v2
44
FSharp.Core (3.1.2.5)
5-
NUnit (3.6.1)
5+
NuGet.CommandLine (3.5)
6+
NUnit (2.6.3)
67
NUnit.ConsoleRunner (3.6)
7-
Xake (0.9.1)
8+
NUnit.Extension.NUnitProjectLoader (3.5)
9+
NUnit.Extension.NUnitV2Driver (3.6)
10+
NUnit.Extension.NUnitV2ResultWriter (3.5)
11+
NUnit.Extension.TeamCityEventListener (1.0.2)
12+
NUnit.Extension.VSProjectLoader (3.5)
13+
NUnit.Runners (3.6)
14+
NUnit.ConsoleRunner (>= 3.6)
15+
NUnit.Extension.NUnitProjectLoader (>= 3.5)
16+
NUnit.Extension.NUnitV2Driver (>= 3.6)
17+
NUnit.Extension.NUnitV2ResultWriter (>= 3.5)
18+
NUnit.Extension.TeamCityEventListener (>= 1.0.2)
19+
NUnit.Extension.VSProjectLoader (>= 3.5)
20+
Xake (0.8.2)

0 commit comments

Comments
 (0)