-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.cake
80 lines (64 loc) · 2.18 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
///////////////////////////////////////////////////////////////////////////////
// ARGUMENTS
///////////////////////////////////////////////////////////////////////////////
#load ./scripts/imports.cake
ScriptArgs args = new ScriptArgs(Context)
.PrintHeader()
.UseDefaultConventions()
.Build();
///////////////////////////////////////////////////////////////////////////////
// TASKS
///////////////////////////////////////////////////////////////////////////////
Task("Info")
.Does(() => {
// args.PrintParams();
args.PrintGitInfo();
});
Task("AddReadme")
.Does(() => UpdateReadmeBadges(args));
Task("Package")
.Does(() => {
CleanDirectory(args.ArtifactsDir);
var description = "DevOps scripts for CI and CD";
var mainFeatures = args.GetMarkdownParagraph(args.KnownFiles.Readme.Value.FullPath, "Main features");
var fullDescription = $"{description}\r\n{mainFeatures}";
var releaseNotes = args.GetReleaseNotes(opt => opt.FromChangelog().WithNumReleases(5));
var buildDir = args.ArtifactsDir / "build";
var packSettings = new NuGetPackSettings()
{
Id = "MicroElements.DevOps",
OutputDirectory = args.PackagesDir,
BasePath = buildDir,
ReleaseNotes = new string[] {releaseNotes},
Description = fullDescription
};
CopyDirectory("./resources", $"{buildDir}/resources");
CopyDirectory("./scripts", $"{buildDir}/scripts");
CopyDirectory("./templates", $"{buildDir}/templates");
DotNetUtils.DotNetNuspecPack(Context, "MicroElements.DevOps.nuspec", packSettings);
});
Task("DoVersioning")
.Does(() => DoVersioning(args));
Task("CopyPackagesToArtifacts")
.Does(() => CopyPackagesToArtifacts(args));
Task("UploadPackages")
.WithCriteria(()=>args.UploadPackages)
.WithCriteria(()=>args.Version.IsRelease)
.Does(() => UploadPackages(args));
Task("Default")
.IsDependentOn("Package")
;
Task("Travis")
.IsDependentOn("Info")
.IsDependentOn("Package")
.IsDependentOn("DoVersioning")
.IsDependentOn("UploadPackages")
;
Task("AppVeyor")
.IsDependentOn("DoVersioning")
.IsDependentOn("Package")
;
Task("TestDevOps")
.IsDependentOn("Info")
;
RunTarget(args.Target);