Skip to content

Commit

Permalink
switch back to old nunit/nuget
Browse files Browse the repository at this point in the history
  • Loading branch information
OlegZee committed Mar 3, 2017
1 parent cdf5671 commit ac99373
Show file tree
Hide file tree
Showing 4 changed files with 96 additions and 43 deletions.
2 changes: 1 addition & 1 deletion XakeLibTests/XakeLibTests.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And $(TargetFrameworkVersion) == 'v4.0'">
<ItemGroup>
<Reference Include="nunit.framework">
<HintPath>..\packages\NUnit\lib\net40\nunit.framework.dll</HintPath>
<HintPath>..\packages\NUnit\lib\nunit.framework.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
Expand Down
111 changes: 75 additions & 36 deletions build.fsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,43 +10,66 @@ let TestsAssembly = "bin/XakeLibTests.dll"
let (=?) value deflt = match value with |Some v -> v |None -> deflt

let DEF_VER = "0.0.1"
let makePackageName () = recipe {
let! ver = getEnv("VER")
return sprintf "Xake.%s.nupkg" (ver =? DEF_VER)
}
let paket args = system (useClr >> checkErrorLevel) ".paket/paket.exe" args |> Action.Ignore

let nuget_exe args = system (useClr >> checkErrorLevel) "packages/NuGet.CommandLine/tools/NuGet.exe" args |> Action.Ignore

module nuget =
module private impl =
let newline = System.Environment.NewLine
let wrapXml node value = sprintf "<%s>%s</%s>" node value node
let wrapXmlNl node (value:string) =
let attrs = value.Split([|newline|], System.StringSplitOptions.None) |> Seq.ofArray
let content = attrs |> Seq.map ((+) " ") |> String.concat newline
sprintf "<%s>%s</%s>" node (newline + content + newline) node
let toXmlStr (node,value) = wrapXml node value

open impl

let dependencies deps =
"dependencies", newline
+ (deps |> List.map (fun (s,v) -> sprintf """<dependency id="%s" version="%s" />""" s v) |> String.concat newline)
+ newline

let metadata = List.map toXmlStr >> String.concat newline >> wrapXmlNl "metadata"
let files = List.map (fun(f,t) -> (f,t) ||> sprintf """<file src="%s" target="%s" />""") >> String.concat newline >> wrapXmlNl "files"
let target t ff = ff |> List.map (fun file -> file,t)
let package = String.concat newline >> wrapXmlNl "package" >> ((+) ("<?xml version=\"1.0\"?>" + newline))

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

rules [
"main" => recipe {
"main" => action {
do! need ["build"]
do! need ["test"]
}

"build" <== [TestsAssembly; "bin/Xake.Core.dll"]
"clean" => rm ["bin/*.*"]
"clean" => action {
do! rm ["bin/*.*"]
}

"test" => recipe {
do! alwaysRerun()
"test" => action {
do! need[TestsAssembly]
do! system (useClr >> checkErrorLevel >> workingDir "bin") "packages/NUnit.ConsoleRunner/tools/nunit3-console.exe" ["XakeLibTests.dll"] |> Action.Ignore
// do! system (useClr >> checkErrorLevel) "packages/NUnit.ConsoleRunner/tools/nunit3-console.exe" [TestsAssembly; "--work=bin"] |> Action.Ignore
do! system (useClr >> checkErrorLevel) "packages/NUnit.ConsoleRunner/tools/nunit3-console.exe" [TestsAssembly] |> Action.Ignore
}

("bin/FSharp.Core.dll") ..> (WhenError ignore <| recipe {
do! copyFrom "packages/FSharp.Core/lib/net40/FSharp.Core.dll"
("bin/FSharp.Core.dll") *> fun outfile ->
WhenError ignore <| action {
do! copyFile "packages/FSharp.Core/lib/net40/FSharp.Core.dll" outfile.FullName
do! copyFiles ["packages/FSharp.Core/lib/net40/FSharp.Core.*data"] "bin"
})
}

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

"bin/Xake.Core.dll" ..> recipe {
"bin/Xake.Core.dll" *> fun file -> action {

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

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

}

TestsAssembly ..> recipe {
TestsAssembly *> fun file -> action {

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

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

(* Nuget publishing rules *)
rules [
"nuget-pack" => recipe {
let! package_name = makePackageName ()
do! need [package_name]
"nuget-pack" => action {

let libFiles = ["bin/Xake.Core.dll"]
do! need libFiles

let! ver = getEnv("VER")

let nuspec =
nuget.package [
nuget.metadata [
"id", "Xake"
"version", ver =? DEF_VER
"authors", "OlegZee"
"owners", "OlegZee"
"projectUrl", "https://github.com/OlegZee/Xake"
"requireLicenseAcceptance", "false"
"description", "Xake build tool"
"releaseNotes", ""
"copyright", sprintf "Copyright %i" System.DateTime.Now.Year
"tags", "Xake F# Build"
nuget.dependencies []
]
nuget.files (libFiles |> nuget.target "tools")
]

let nuspec_file = "_.nuspec"
do System.IO.Directory.CreateDirectory("nupkg") |> ignore
do System.IO.File.WriteAllText(nuspec_file, nuspec)

do! nuget_exe ["pack"; nuspec_file; "-OutputDirectory"; "nupkg" ]
}

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

"nuget-push" => recipe {
do! need ["nuget-pack"]

let! package_name = makePackageName ()
do! need [package_name]
let! ver = getEnv("VER")
let package_name = sprintf "Xake.%s.nupkg" (ver =? DEF_VER)

let! nuget_key = getEnv("NUGET_KEY")
do! paket
[
"push"
"url"; "https://www.nuget.org/api/v2/package"
"file"; package_name
"apikey"; nuget_key =? ""
]
do! nuget_exe ["push"; "nupkg" </> package_name; nuget_key =? ""; "-Source"; "https://www.nuget.org/api/v2/package"]
}
]
}
Expand Down
9 changes: 5 additions & 4 deletions paket.dependencies
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
framework: net40
framework: 40
source https://www.nuget.org/api/v2/

nuget FSharp.Core 3.1.2.5
nuget NUnit.ConsoleRunner
nuget nunit
nuget Xake 0.9.1
nuget NUnit.Runners
nuget Nuget.CommandLine
nuget nunit 2.6.3
nuget Xake 0.8.2
17 changes: 15 additions & 2 deletions paket.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,19 @@ FRAMEWORK: NET40
NUGET
remote: https://www.nuget.org/api/v2
FSharp.Core (3.1.2.5)
NUnit (3.6.1)
NuGet.CommandLine (3.5)
NUnit (2.6.3)
NUnit.ConsoleRunner (3.6)
Xake (0.9.1)
NUnit.Extension.NUnitProjectLoader (3.5)
NUnit.Extension.NUnitV2Driver (3.6)
NUnit.Extension.NUnitV2ResultWriter (3.5)
NUnit.Extension.TeamCityEventListener (1.0.2)
NUnit.Extension.VSProjectLoader (3.5)
NUnit.Runners (3.6)
NUnit.ConsoleRunner (>= 3.6)
NUnit.Extension.NUnitProjectLoader (>= 3.5)
NUnit.Extension.NUnitV2Driver (>= 3.6)
NUnit.Extension.NUnitV2ResultWriter (>= 3.5)
NUnit.Extension.TeamCityEventListener (>= 1.0.2)
NUnit.Extension.VSProjectLoader (>= 3.5)
Xake (0.8.2)

0 comments on commit ac99373

Please sign in to comment.