-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.fsx
86 lines (72 loc) · 2.16 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
#r "tools/FAKE/tools/FakeLib.dll"
open Fake
open System
open System.Diagnostics
RestorePackages()
// Properties
let version = "0.1.2"
let buildDir = "./build/"
let testResultsDir = "./testresults/"
let distDir = "./dist/"
let distToolsDir = distDir @@ "tools/"
let distContentDir = distDir @@ "content/"
let buildMode = getBuildParamOrDefault "buildMode" "Release"
// Targets
Target "Clean" (fun _ ->
CleanDirs [ buildDir
testResultsDir
distDir
distToolsDir
distContentDir ]
)
Target "Build" (fun _ ->
!! "src/DocPlagiarizer/**/*.csproj"
|> MSBuildRelease buildDir "Build"
|> Log "AppBuild-Output: "
)
Target "PrepareTestProject" (fun _ ->
!! "src/DocPlagiarizer.TestProject/originals/*.cs"
|> Copy "src/DocPlagiarizer.TestProject/"
)
Target "TestProject" (fun _ ->
!! "src/DocPlagiarizer.TestProject/**/*.csproj"
|> MSBuildRelease "testproject" "Build"
|> Log "AppBuild-Output: "
)
Target "ConfirmTests" (fun _ ->
let builtFile (expectedFile: string) =
expectedFile.Replace("expected", "")
let ConfirmFilesAreEqual (first, second) =
match (FilesAreEqual first second) with
| false -> logToConsole("Copying comments in `" + first.Name + "` failed!", EventLogEntryType.Error)
| true -> logToConsole("Copying comments in `" + first.Name + "` was successful.", EventLogEntryType.Information)
!! "src/DocPlagiarizer.TestProject/expected/*.cs"
|> Seq.map (fun expected -> (expected, (builtFile expected)))
|> Seq.map (fun (expected, actual) -> (fileInfo expected, fileInfo actual))
|> Seq.iter ConfirmFilesAreEqual
)
Target "Package" (fun _ ->
!! (buildDir @@ "*.dll")
++ "uninstall.ps1"
++ "install.ps1"
|> Copy distToolsDir
"README.md"
|> CopyFile (distContentDir @@ "DocPlagiarizer.README.md")
NuGet (fun p ->
{ p with
WorkingDir = distDir
OutputPath = distDir
Publish = false
Version = version }) "DocPlagiarizer.nuspec"
)
Target "Default" DoNothing
// Dependencies
"Clean"
==> "Build"
==> "PrepareTestProject"
==> "TestProject"
==> "ConfirmTests"
==> "Default"
==> "Package"
// Start
RunTargetOrDefault "Default"