-
Notifications
You must be signed in to change notification settings - Fork 5
/
build.cake
82 lines (71 loc) · 2.29 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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#tool "nuget:?package=JetBrains.dotCover.CommandLineTools&version=2020.1.4"
var target = Argument("Target", "Default");
var configuration = Argument("Configuration", "Release");
Information($"Running target {target} in configuration {configuration}");
var distDirectory = Directory("./build");
var packageDirectory = Directory("./package");
var temporaryFolder = Directory("./temp");
TaskSetup(setupContext =>
{
if(TeamCity.IsRunningOnTeamCity)
{
TeamCity.WriteStartBuildBlock(setupContext.Task.Description ?? setupContext.Task.Name);
}
});
TaskTeardown(teardownContext =>
{
if(TeamCity.IsRunningOnTeamCity)
{
TeamCity.WriteEndProgress(teardownContext.Task.Description ?? teardownContext.Task.Name);
}
});
Task("Clean")
.Description("Cleaning the solution directory")
.Does(() =>
{
CleanDirectory(distDirectory);
});
Task("Restore")
.Description("Restoring the solution dependencies")
.Does(() =>
{
DotNetCoreRestore();
});
Task("Build")
.Description("Building the Solution")
.Does(() =>
{
var buildSettings = new DotNetCoreBuildSettings {
Configuration = configuration,
ArgumentCustomization = args => args.Append("--no-restore"),
};
var projects = GetFiles("./**/*.csproj");
foreach(var project in projects)
{
Information("Building Project: " + project.ToString());
DotNetCoreBuild(project.ToString(), buildSettings);
}
});
Task("Test")
.Description("Running Unit Tests")
.Does(() =>
{
var projects = GetFiles("./tests/**/*.Tests.csproj");
foreach(var project in projects)
{
Information("Testing project " + project);
DotNetCoreTest(
project.ToString(),
new DotNetCoreTestSettings()
{
Configuration = configuration
});
}
});
Task("Default")
.Description("Default build task")
.IsDependentOn("Clean")
.IsDependentOn("Restore")
.IsDependentOn("Build")
.IsDependentOn("Test");
RunTarget(target);