forked from yehorhromadskyi/solidity-test-contract
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.cake
101 lines (79 loc) · 2.41 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
#addin Cake.FileHelpers
#addin Cake.Npm
var target = Argument("target", "Default");
var contract = "Bravo";
var configuration = Argument("configuration", "Release");
Task("Clean")
.Does(() =>
{
var settings = new DotNetCoreCleanSettings
{
Configuration = configuration
};
DotNetCoreClean("./", settings);
CleanDirectory(Directory("bin"));
});
Task("Build")
.IsDependentOn("Clean")
.Does(() =>
{
Information("Configuration: " + configuration + "\r\n");
var settings = new DotNetCoreBuildSettings
{
Configuration = configuration
};
DotNetCoreBuild("./", settings);
});
Task("Npm")
.IsDependentOn("Build")
.Does(() =>
{
Information("Installing solidity compiler\r\n");
//NpmInstall(settings => settings.AddPackage("solc").InstallGlobally());
NpmInstall("solc");
});
Task("Contract")
.IsDependentOn("Npm")
.Does(() =>
{
Information("Run compile.js\r\n");
StartProcess("powershell", new ProcessSettings
{
Arguments = new ProcessArgumentBuilder()
.Append(@"node compile.js", contract)
});
});
Task("Test")
.IsDependentOn("Contract")
.Does(() =>
{
var startInfo = new System.Diagnostics.ProcessStartInfo
{
FileName = "powershell.exe",
RedirectStandardInput = true,
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true
};
var process = new System.Diagnostics.Process { StartInfo = startInfo };
process.Start();
var testchainDir = MakeAbsolute(Directory("./testchain"));
process.StandardInput.WriteLine("cd " + testchainDir);
var startgeth = "sh " + testchainDir + "/startgeth.sh";
Information("Running geth: " + startgeth + "\r\n");
process.StandardInput.WriteLine(startgeth);
//System.Threading.Thread.Sleep(10000);
var settings = new DotNetCoreTestSettings
{
Configuration = configuration
};
DotNetCoreTest("./", settings);
// exit geth
process.StandardInput.WriteLine("exit");
// exit powershell
process.StandardInput.WriteLine("exit");
process.WaitForExit();
});
Task("Default")
.IsDependentOn("Test");
RunTarget(target);