forked from cake-build/cake-action
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.cake
127 lines (102 loc) · 3.48 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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
var target = Argument("Target", "Successful-Task");
var stringArgument = Argument("String-Parameter", string.Empty);
var numericArgument = Argument("Numeric-Parameter", 0);
var booleanArgument = Argument("Boolean-Parameter", false);
Task("Successful-Task")
.Does(() =>
{
Information("✓ Passed");
});
Task("Failing-Task")
.Does(() =>
{
throw new Exception("✕ Failed");
});
Task("Test-Cake-Version")
.Does(() =>
{
var hasExpectedVersion = Version.TryParse(
EnvironmentVariable("EXPECTED_CAKE_VERSION"),
out Version expectedVersion);
if (!hasExpectedVersion)
{
throw new Exception(
"✕ The EXPECTED_CAKE_VERSION environment variable is not set or it doesn't contain a version number");
}
var actualVersion = Context.Environment.Runtime.CakeVersion;
if (( expectedVersion.Major, expectedVersion.Minor, expectedVersion.Build ) !=
( actualVersion.Major, actualVersion.Minor, actualVersion.Build ))
{
throw new Exception(
$"✕ Expected Cake version {expectedVersion.ToString(fieldCount: 3)} but got {actualVersion.ToString(fieldCount: 3)}");
}
Information("✓ Passed");
});
Task("Test-Verbosity")
.Does(() =>
{
var hasExpectedVerbosity = Enum.TryParse(
EnvironmentVariable("EXPECTED_VERBOSITY"),
ignoreCase: true,
out Verbosity expectedVerbosity);
if (!hasExpectedVerbosity)
{
throw new Exception(
"✕ The EXPECTED_VERBOSITY environment variable is not set or it doesn't contain a verbosity level");
}
var actualVerbosity = Context.Log.Verbosity;
if (expectedVerbosity != actualVerbosity)
{
throw new Exception($"✕ Expected verbosity {expectedVerbosity} but got {actualVerbosity}");
}
Information("✓ Passed");
});
Task("Test-Dry-Run")
.Does(() =>
{
if (!IsDryRun())
{
throw new Exception("✕ Expected this to be a dry run, but it isn't");
}
Information("✓ Passed");
});
Task("Test-Script-Parameters")
.Does(() =>
{
var expectedStringArgument = EnvironmentVariable("EXPECTED_STRING_ARGUMENT");
var hasExpectedNumericArgument = int.TryParse(
EnvironmentVariable("EXPECTED_NUMERIC_ARGUMENT"),
out int expectedNumericArgument);
var hasExpectedBooleanArgument = bool.TryParse(
EnvironmentVariable("EXPECTED_BOOLEAN_ARGUMENT"),
out bool expectedBooleanArgument);
if (string.IsNullOrEmpty(expectedStringArgument))
{
throw new Exception(
"✕ The EXPECTED_STRING_ARGUMENT environment variable is not set");
}
if (!hasExpectedNumericArgument)
{
throw new Exception(
"✕ The EXPECTED_NUMERIC_ARGUMENT environment variable is not set");
}
if (!hasExpectedBooleanArgument)
{
throw new Exception(
"✕ The EXPECTED_BOOLEAN_ARGUMENT environment variable is not set");
}
if (expectedStringArgument != stringArgument)
{
throw new Exception($"✕ Expected string argument {expectedStringArgument} but got {stringArgument}");
}
if (expectedNumericArgument != numericArgument)
{
throw new Exception($"✕ Expected numeric argument {expectedNumericArgument} but got {numericArgument}");
}
if (expectedBooleanArgument != booleanArgument)
{
throw new Exception($"✕ Expected boolean argument {expectedBooleanArgument} but got {booleanArgument}");
}
Information("✓ Passed");
});
RunTarget(target);