forked from wwwlicious/ServiceStack.Quartz
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.cake
More file actions
117 lines (94 loc) · 4.05 KB
/
build.cake
File metadata and controls
117 lines (94 loc) · 4.05 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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
///////////////////////////////////////////////////////////////////////////////
// ENVIRONMENT VARIABLES
///////////////////////////////////////////////////////////////////////////////
var envNugetServer = EnvironmentVariable("NUGET_SERVER");
var envNugetApiKey = EnvironmentVariable("NUGET_APIKEY");
var envBuildNumber = EnvironmentVariable<int>("build", 0);
///////////////////////////////////////////////////////////////////////////////
// ARGUMENTS
///////////////////////////////////////////////////////////////////////////////
var target = Argument<string>("target", "Default");
var configuration = Argument<string>("configuration", "Debug");
var nugetServer = Argument<string>("NugetSource", envNugetServer);
var nugetApiKey = Argument<string>("NugetApiKey", envNugetApiKey);
var verbosity = Argument<string>("Verbosity", "Verbose");
var buildNumber = Argument<int>("build", envBuildNumber);
//////////////////////////////////////////////////////////////////////
// TOOLS AND ADDINS
//////////////////////////////////////////////////////////////////////
#tool "nuget:?package=GitVersion.CommandLine&version=3.6.5"
#addin "nuget:?package=Cake.Incubator&version=1.6.0"
#addin "nuget:?package=Cake.Git&version=0.16.1"
///////////////////////////////////////////////////////////////////////////////
// GLOBAL VARIABLES
///////////////////////////////////////////////////////////////////////////////
var gitVersionResults = GitVersion(new GitVersionSettings { UpdateAssemblyInfo = false });
var semVersion = gitVersionResults.MajorMinorPatch + "." + buildNumber;
var solutionFile = new FilePath("ServiceStack.Quartz.sln");
var solution = ParseSolution(solutionFile);
var docFile = "docs.csproj";
Information("Semver Version -> {0}", semVersion);
// folders
var srcDir = Directory("./src");
var artifactsDir = Directory("./artifacts");
var nupkgDestDir = artifactsDir + Directory("nuget-package");
//////////////////////////////////////////////////////////////////////
// TASKS
//////////////////////////////////////////////////////////////////////
Task("__Clean")
.Does(() => {
CleanDirectories(new DirectoryPath[] {
artifactsDir,
nupkgDestDir
});
Information("Cleaning {0}", srcDir);
CleanDirectories(srcDir.ToString() + "/**/bin");
CleanDirectories(srcDir.ToString() + "/**/obj");
});
Task("__Build")
.IsDependentOn("__Clean")
.Does(() => {
Information("Restoring Packages {0}", solutionFile);
DotNetCoreRestore(solutionFile.FullPath);
// build the solution with msbuild task
Information("Building {0}", solutionFile);
var msbuildBinaryLogFile = artifactsDir + new FilePath(solutionFile.GetFilenameWithoutExtension() + ".binlog");
// TODO Try netcore build instead.
var settings = new DotNetCoreMSBuildSettings();
settings.SetConfiguration(configuration);
settings.SetVersion(semVersion);
settings.SetWarningCodeAsError("3884");
settings.ShowDetailedSummary();
settings.WithProperty("PackageOutputPath",MakeAbsolute(nupkgDestDir).FullPath);
settings.ArgumentCustomization = arguments => {
arguments.Append(string.Format("/bl:{0}", msbuildBinaryLogFile));
return arguments;
};
DotNetCoreMSBuild(solutionFile.ToString(), settings);
});
Task("__Test")
.Does(() => {
foreach(var project in solution.Projects){
if(project.Name.EndsWith("test", StringComparison.OrdinalIgnoreCase) ||
project.Name.EndsWith("tests", StringComparison.OrdinalIgnoreCase)){
DotNetCoreTest(project.Path.ToString());
}
}
});
Task("RunDocs")
.Does(() => {
DotNetCoreRestore(docFile);
DotNetCoreTool(docFile, "stdocs", "run");
});
Task("UpdateDocs")
.Does(() => {
DotNetCoreRestore(docFile);
DotNetCoreTool(docFile, "stdocs", "export ./docs ProjectWebsite -p ServiceStack.Quartz");
});
Task("Build")
.IsDependentOn("__Clean")
.IsDependentOn("__Build")
.IsDependentOn("__Test");
Task("Default")
.IsDependentOn("Build");
RunTarget(target);