/
build.cake
60 lines (50 loc) · 1.52 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
56
57
58
59
60
#tool "nuget:?package=GitVersion.CommandLine&version=4.0.0"
#tool "nuget:?package=vswhere&version=2.6.7"
var configuration = Argument("configuration", "Release");
var isPreRelease = Argument("isPreRelease", true);
var output = Argument("output", "artifacts");
var sln = "Blazor.PrerenderCache.sln";
var nupkgs = "Blazor.PrerenderCache/**/*.nupkg";
// Determine package version
var gv = GitVersion();
var branch = gv.BranchName;
if (branch.Contains("/")) branch = branch.Substring(branch.LastIndexOf('/') + 1);
var version = XmlPeek(GetFiles("**/*.csproj").First(), "//Version");
var versionPkg = !isPreRelease ? version : $"{version}-{branch}-{DateTime.Now:MMddHHmm}";
Task("Clean").Does(() =>
{
CleanDirectory(output);
});
Task("Build").Does(() =>
{
MSBuild(sln, new MSBuildSettings
{
Configuration = configuration,
Restore = true,
ToolPath = GetFiles(VSWhereLatest() + "/**/MSBuild.exe").FirstOrDefault()
}
.WithProperty("AssemblyVersion", version)
.WithProperty("FileVersion", versionPkg)
.WithProperty("InformationalVersion", versionPkg)
.WithProperty("PackageVersion", versionPkg)
);
});
Task("Test").Does(() =>
{
VSTest($"./**/bin/{configuration}/net5.0/*.UnitTest.dll", new VSTestSettings
{
ToolPath = GetFiles(VSWhereLatest() + "/**/vstest.console.exe").FirstOrDefault()
});
});
Task("Artifact.NuGet").Does(() =>
{
MoveFiles(nupkgs, output);
});
Task("Default")
.IsDependentOn("Clean")
.IsDependentOn("Build")
.IsDependentOn("Test")
.IsDependentOn("Artifact.NuGet")
.Does(() => {})
;
RunTarget("Default");