This repository has been archived by the owner on Jun 9, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.cake
112 lines (91 loc) · 3.54 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
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
#load "./cake/SaBuild.cake"
//////////////////////////////////////////////////////////////////////
// SABUILD
//////////////////////////////////////////////////////////////////////
var build = new SaBuild(
Context, // cake context
Argument("configuration", "Release"), // configuration
"./env/gamemode", // debug build directory
"./bin", // release build directory
"./SampSharp.Streamer.sln", // solution
new[] { // assembly infos
"./src/SampSharp.UI/Properties/AssemblyInfo.cs",
},
new[] { // nuget packages
"SampSharp.UI",
},
"ikkentim", // github username
"SampSharp-ui", // github repository
EnvironmentVariable("LAGET_KEY"), // nuget key
"http://nuget.timpotze.nl/upload", // nuget source
EnvironmentVariable("GITHUB_USERNAME"), // github release username
EnvironmentVariable("GITHUB_PASSWORD"), // github release password
new[] { // nuget sources
"http://nuget.timpotze.nl/api/v2/"
}
);
//////////////////////////////////////////////////////////////////////
// TASKS
//////////////////////////////////////////////////////////////////////
Task("__Clean")
.Does(() => build.Clean());
Task("__RestoreNuGetPackages")
.Does(() => build.RestoreNuGetPackages());
Task("__BuildSolution")
.IsDependentOn("__RestoreNuGetPackages")
.Does(() => build.Build());
Task("__RunUnitTests")
.IsDependentOn("__BuildSolution")
.Does(() => build.Test());
Task("__CreateNuGetPackagesIfAppVeyorTag")
.WithCriteria(() => build.IsAppVeyorTag)
.IsDependentOn("__BuildSolution")
.Does(() => build.CreateNuGetPackages());
Task("__PublishNuGetPackagesIfAppVeyorTag")
.WithCriteria(() => build.IsAppVeyorTag)
.Does(() => build.PublisNuGetPackages());
Task("__PublishGitHubReleaseIfAppVeyorTag")
.WithCriteria(() => build.IsAppVeyorTag)
.Does(() => build.PublishGitHubRelease())
.OnError(exception =>
{
Information("__PublishGitHubReleaseIfAppVeyorTag Task failed, but continuing with next task...");
});
Task("__DisplayVersion")
.Does(() =>
{
if(!build.IsRelease)
{
throw new Exception("Build in release before you tag!");
}
Console.WriteLine("Suggested tag for the next release is: " + build.Version);
});
Task("Build")
.IsDependentOn("__Clean")
.IsDependentOn("__RestoreNuGetPackages")
.IsDependentOn("__BuildSolution")
.IsDependentOn("__RunUnitTests")
;
Task("PublishToNuGetIfAppVeyorTag")
.WithCriteria(() => build.IsAppVeyorTag)
.IsDependentOn("__CreateNuGetPackagesIfAppVeyorTag")
.IsDependentOn("__PublishNuGetPackagesIfAppVeyorTag")
.IsDependentOn("__PublishGitHubReleaseIfAppVeyorTag")
;
///////////////////////////////////////////////////////////////////////////////
// PRIMARY TARGETS
///////////////////////////////////////////////////////////////////////////////
Task("Default")
.IsDependentOn("Build")
;
Task("AppVeyor")
.IsDependentOn("Build")
.IsDependentOn("PublishToNuGetIfAppVeyorTag")
;
Task("GenerateTag")
.IsDependentOn("Build")
.IsDependentOn("__DisplayVersion");
///////////////////////////////////////////////////////////////////////////////
// EXECUTION
///////////////////////////////////////////////////////////////////////////////
RunTarget(Argument("target", "Default"));