-
Notifications
You must be signed in to change notification settings - Fork 0
/
Build.cs
70 lines (61 loc) · 1.46 KB
/
Build.cs
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
using System;
using Nuke.Common;
class Build : NukeBuild,
IRestoreDotNet,
IRestoreNuGetCli,
ICompileDotNet
{
public static int Main() => Execute<Build>(x => ((ICompile)x).Compile);
Target IRestore.Restore => _ => _
.Inherit<IRestoreDotNet>();
Target AdditionalLegacyRestore => _ => _
.DependentFor<ICompile>()
.Inherit<IRestoreNuGetCli>();
}
interface IRestore : INukeBuild
{
Target Restore => _ => _
// Why does the following line make the same restore target running twice?
.TryDependentFor<ICompile>();
}
interface ICompile : INukeBuild
{
Target Compile => _ => _
.TryDependsOn<IRestore>();
}
interface IRestoreNuGetCli : IRestore
{
Target IRestore.Restore => _ => _
.Inherit<IRestore>()
.Executes(() =>
{
Console.WriteLine("nuget.exe restore");
});
}
interface IRestoreDotNet : IRestore
{
Target IRestore.Restore => _ => _
.Inherit<IRestore>()
.Executes(() =>
{
Console.WriteLine("dotnet restore");
});
}
interface ICompileMsBuild : ICompile
{
Target ICompile.Compile => _ => _
.Inherit<ICompile>()
.Executes(() =>
{
Console.WriteLine("msbuild.exe sln");
});
}
interface ICompileDotNet : ICompile
{
Target ICompile.Compile => _ => _
.Inherit<ICompile>()
.Executes(() =>
{
Console.WriteLine("dotnet build");
});
}