-
Notifications
You must be signed in to change notification settings - Fork 74
/
build.cake
55 lines (49 loc) · 1.46 KB
/
build.cake
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
var target = Argument("target", "Default");
Task("Default")
.IsDependentOn("Build")
.IsDependentOn("Test")
.Does(() =>
{
});
Task("Build")
.Does(() =>
{
MSBuild("./src/Optional.sln", new MSBuildSettings
{
Verbosity = Verbosity.Minimal,
ToolVersion = MSBuildToolVersion.VS2017,
Configuration = "Release",
PlatformTarget = PlatformTarget.MSIL
});
});
Task("Test")
.IsDependentOn("Build")
.Does(() =>
{
MSTest("./src/Optional.Tests/bin/release/**/Optional.Tests.dll");
});
Task("Pack")
.IsDependentOn("Build")
.IsDependentOn("Test")
.Does(() =>
{
Pack("Optional", new [] { "net35", "net45", "netstandard1.0", "netstandard2.0" });
});
RunTarget(target);
public void Pack(string projectName, string[] targets)
{
var nuGetPackSettings = new NuGetPackSettings
{
NoPackageAnalysis = true,
BasePath = "./src/" + projectName + "/bin/release",
OutputDirectory = "./nuget/" + projectName,
Files = targets
.SelectMany(target => new []
{
new NuSpecContent { Source = target + "/" + projectName + ".dll", Target = "lib/" + target },
new NuSpecContent { Source = target + "/" + projectName + ".xml", Target = "lib/" + target }
})
.ToArray()
};
NuGetPack("./nuget/" + projectName + ".nuspec", nuGetPackSettings);
}