-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
helpers.cake
56 lines (44 loc) · 1.79 KB
/
helpers.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
#addin "nuget:?package=xunit.assert&version=2.4.1"
#load "records.cake"
// Usings
using Xunit;
/*****************************
* Helpers
*****************************/
private static ExtensionHelper extensionHelper;
extensionHelper = new ExtensionHelper(Task, () => RunTarget(Argument("target", "Default")));
public static CakeTaskBuilder Then(this CakeTaskBuilder cakeTaskBuilder, string name)
=> extensionHelper
.TaskCreate(name)
.IsDependentOn(cakeTaskBuilder);
public static CakeReport Run(this CakeTaskBuilder cakeTaskBuilder)
=> extensionHelper.Run();
public static CakeTaskBuilder Default(this CakeTaskBuilder cakeTaskBuilder)
{
extensionHelper
.TaskCreate("Default")
.IsDependentOn(cakeTaskBuilder);
return cakeTaskBuilder;
}
if (BuildSystem.GitHubActions.IsRunningOnGitHubActions)
{
TaskSetup(context=> System.Console.WriteLine($"::group::{context.Task.Name.Quote()}"));
TaskTeardown(context=>System.Console.WriteLine("::endgroup::"));
}
public class FilePathJsonConverter : PathJsonConverter<FilePath>
{
protected override FilePath ConvertFromString(string value) => FilePath.FromString(value);
}
public abstract class PathJsonConverter<TPath> : System.Text.Json.Serialization.JsonConverter<TPath> where TPath : Cake.Core.IO.Path
{
public override TPath Read(ref System.Text.Json.Utf8JsonReader reader, Type typeToConvert, System.Text.Json.JsonSerializerOptions options)
{
var value = reader.GetString();
return value is null ? null : ConvertFromString(value);
}
public override void Write(System.Text.Json.Utf8JsonWriter writer, TPath value, System.Text.Json.JsonSerializerOptions options)
{
writer.WriteStringValue(value.FullPath);
}
protected abstract TPath ConvertFromString(string value);
}