-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathbuild.cake
More file actions
77 lines (65 loc) · 1.36 KB
/
build.cake
File metadata and controls
77 lines (65 loc) · 1.36 KB
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
var target = Argument("target", "default");
var edition = Argument("edition", "Debug");
var solutionFile = "Zongsoft.Externals.Python.slnx";
Task("clean")
.Description("清理解决方案")
.Does(() =>
{
CleanDirectories($"**/bin/{edition}");
CleanDirectories($"**/obj/{edition}");
});
Task("restore")
.Description("还原项目依赖")
.Does(() =>
{
DotNetRestore(solutionFile);
});
Task("build")
.Description("编译项目")
.IsDependentOn("clean")
.IsDependentOn("restore")
.Does(() =>
{
var settings = new DotNetBuildSettings
{
Configuration = edition,
};
DotNetBuild(solutionFile, settings);
});
Task("test")
.Description("单元测试")
.IsDependentOn("build")
.Does(() =>
{
var settings = new DotNetTestSettings
{
NoBuild = true,
NoRestore = true,
Configuration = edition,
};
var projects = GetFiles("**/test/*.csproj");
foreach(var project in projects)
{
DotNetTest(project.FullPath, settings);
}
});
Task("pack")
.Description("发包(NuGet)")
.IsDependentOn("build")
.Does(() =>
{
var packages = GetFiles($"**/{edition}/*.nupkg");
foreach(var package in packages)
{
DotNetNuGetPush(package.FullPath, new DotNetNuGetPushSettings
{
Source = "nuget.org",
ApiKey = EnvironmentVariable("NUGET_API_KEY"),
SkipDuplicate = true,
});
}
});
Task("default")
.Description("默认")
.IsDependentOn("test");
RunTarget(target);