-
Notifications
You must be signed in to change notification settings - Fork 366
/
BuildRelease.train
198 lines (187 loc) · 13.4 KB
/
BuildRelease.train
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
//get version info from VersionInfo.ini
var versionInfoIni = ini.fromFile("VersionInfo.ini");
var appVersion = versionInfoIni.getValue("VersionInfo", "AppVersion", "1.0");
var shortAppVersion = appVersion.substring(0, appVersion.lastIndexOf(".", appVersion.length - 1));
//update the assembly versions for each .NET project using the above version info
msbuild.updateAssemblyVersion("../MultiMiner.CoinApi/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.ExchangeApi/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.Blockchain/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.Coinbase/Properties/AssemblyInfo.cs", appVersion);
//msbuild.updateAssemblyVersion("../MultiMiner.CoinChoose/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.CoinWarz/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.Engine/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.Win/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.Update/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.Xgminer/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.Xgminer.Api/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.Xgminer.Discovery/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.MobileMiner/Properties/AssemblyInfo.cs", appVersion);
//msbuild.updateAssemblyVersion("../MultiMiner.MobileMiner.Embed/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.Stats/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.Remoting/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.Services/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.Discovery/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.Utility/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.MultipoolApi/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.NiceHash/Properties/AssemblyInfo.cs", appVersion);
//msbuild.updateAssemblyVersion("../MultiMiner.WhatMine/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.WhatToMine/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.UX/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.TUI/Properties/AssemblyInfo.cs", appVersion);
msbuild.updateAssemblyVersion("../MultiMiner.Xgminer.Api.Client/Properties/AssemblyInfo.cs", appVersion);
//rebuild each .NET project - Release configurations
msbuild.rebuild("../MultiMiner.CoinApi/MultiMiner.CoinApi.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.ExchangeApi/MultiMiner.ExchangeApi.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.Coinbase/MultiMiner.Coinbase.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.Blockchain/MultiMiner.Blockchain.csproj", { configuration: "Release" });
//msbuild.rebuild("../MultiMiner.CoinChoose/MultiMiner.CoinChoose.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.CoinWarz/MultiMiner.CoinWarz.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.Engine/MultiMiner.Engine.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.Utility/MultiMiner.Utility.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.Win/MultiMiner.Win.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.Update/MultiMiner.Update.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.Xgminer/MultiMiner.Xgminer.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.Xgminer.Api/MultiMiner.Xgminer.Api.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.Xgminer.Discovery/MultiMiner.Xgminer.Discovery.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.MobileMiner/MultiMiner.MobileMiner.csproj", { configuration: "Release" });
//msbuild.rebuild("../MultiMiner.MobileMiner.Embed/MultiMiner.MobileMiner.Embed.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.Stats/MultiMiner.Stats.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.Remoting/MultiMiner.Remoting.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.Services/MultiMiner.Services.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.Discovery/MultiMiner.Discovery.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.MultipoolApi/MultiMiner.MultipoolApi.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.NiceHash/MultiMiner.NiceHash.csproj", { configuration: "Release" });
//msbuild.rebuild("../MultiMiner.WhatMine/MultiMiner.WhatMine.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.WhatToMine/MultiMiner.WhatToMine.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.UX/MultiMiner.UX.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.TUI/MultiMiner.TUI.csproj", { configuration: "Release" });
msbuild.rebuild("../MultiMiner.Xgminer.Api.Client/MultiMiner.Xgminer.Api.Client.csproj", { configuration: "Release" });
//export environment variable for InnoSetup to use for app version
export("MM_AppVersion", shortAppVersion);
//build an InnoSetup installer
inno.build("Installer.iss", { });
//create a regular Zip release
//only this contains the Update.exe as this is the only update package
folder.remove("PF", true);
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Win.exe", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Win.pdb", "PF/");
file.copy("../MultiMiner.Update/bin/Release/MultiMiner.Update.exe", "PF/");
file.copy("../MultiMiner.Update/bin/Release/MultiMiner.Update.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.CoinApi.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.CoinApi.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.ExchangeApi.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.ExchangeApi.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Blockchain.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Blockchain.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Coinbase.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Coinbase.pdb", "PF/");
//file.copy("../MultiMiner.Win/bin/Release/MultiMiner.CoinChoose.dll", "PF/");
//file.copy("../MultiMiner.Win/bin/Release/MultiMiner.CoinChoose.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.CoinWarz.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.CoinWarz.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Engine.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Engine.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Utility.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Utility.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Xgminer.Api.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Xgminer.Api.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Xgminer.Discovery.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Xgminer.Discovery.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.MobileMiner.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.MobileMiner.pdb", "PF/");
//file.copy("../MultiMiner.Win/bin/Release/MultiMiner.MobileMiner.Embed.dll", "PF/");
//file.copy("../MultiMiner.Win/bin/Release/MultiMiner.MobileMiner.Embed.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Stats.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Stats.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Xgminer.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Xgminer.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Remoting.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Remoting.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Services.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Services.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Discovery.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.Discovery.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.MultipoolApi.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.MultipoolApi.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.NiceHash.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.NiceHash.pdb", "PF/");
//file.copy("../MultiMiner.Win/bin/Release/MultiMiner.WhatMine.dll", "PF/");
//file.copy("../MultiMiner.Win/bin/Release/MultiMiner.WhatMine.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.WhatToMine.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.WhatToMine.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.UX.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/MultiMiner.UX.pdb", "PF/");
file.copy("../MultiMiner.TUI/bin/Release/MultiMiner.TUI.exe", "PF/");
file.copy("../MultiMiner.TUI/bin/Release/MultiMiner.TUI.pdb", "PF/");
file.copy("../MultiMiner.Xgminer.Api.Client/bin/Release/MultiMiner.Xgminer.Api.Client.exe", "PF/");
file.copy("../MultiMiner.Xgminer.Api.Client/bin/Release/MultiMiner.Xgminer.Api.Client.pdb", "PF/");
file.copy("../MultiMiner.Win/bin/Release/Newtonsoft.Json.dll", "PF/");
file.copy("../MultiMiner.Win/bin/Release/Renci.SshNet.dll", "PF/");
zip.compress("Output/MultiMiner-" + shortAppVersion + ".zip", "PF/", "*.*", true);
folder.remove("PF", true);
//create Mac .app package (requires Mono, X11 to run)
folder.remove("Output/MultiMiner.app", true);
folder.remove("Output/MultiMiner.Win.app", true);
var macPackPath = "C:/Program Files (x86)/Mono/lib/mono/4.5/macpack.exe";
shell.exec(macPackPath,
"-o Output \
-n MultiMiner.Win \
-m winforms \
-r \
../MultiMiner.Win/bin/Release/MultiMiner.Win.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.CoinApi.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.CoinApi.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.ExchangeApi.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.ExchangeApi.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.Blockchain.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.Blockchain.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.Coinbase.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.Coinbase.pdb,\
//../MultiMiner.Win/bin/Release/MultiMiner.CoinChoose.dll,\
//../MultiMiner.Win/bin/Release/MultiMiner.CoinChoose.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.CoinWarz.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.CoinWarz.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.Engine.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.Engine.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.Utility.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.Utility.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.Xgminer.Api.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.Xgminer.Api.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.Xgminer.Discovery.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.Xgminer.Discovery.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.MobileMiner.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.MobileMiner.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.Stats.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.Stats.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.Xgminer.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.Xgminer.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.Remoting.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.Remoting.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.Services.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.Services.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.Discovery.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.Discovery.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.MultipoolApi.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.MultipoolApi.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.NiceHash.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.NiceHash.pdb,\
//../MultiMiner.Win/bin/Release/MultiMiner.WhatMine.dll,\
//../MultiMiner.Win/bin/Release/MultiMiner.WhatMine.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.WhatToMine.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.WhatToMine.pdb,\
../MultiMiner.Win/bin/Release/MultiMiner.UX.dll,\
../MultiMiner.Win/bin/Release/MultiMiner.UX.pdb,\
../MultiMiner.TUI/bin/Release/MultiMiner.TUI.exe,\
../MultiMiner.TUI/bin/Release/MultiMiner.TUI.pdb,\
../MultiMiner.Xgminer.Api.Client/bin/Release/MultiMiner.Xgminer.Api.Client.exe,\
../MultiMiner.Xgminer.Api.Client/bin/Release/MultiMiner.Xgminer.Api.Client.pdb,\
../MultiMiner.Win/bin/Release/Newtonsoft.Json.dll,\
../MultiMiner.Win/bin/Release/Renci.SshNet.dll \
-i ../MultiMiner.Win/MultiMiner.icns \
../MultiMiner.Win/bin/Release/MultiMiner.Win.exe");
folder.move("Output/MultiMiner.Win.app", "Output/MultiMiner.app");
file.copy("Launcher/MultiMiner.Win", "Output/MultiMiner.app/Contents/MacOS/MultiMiner.Win");
//zip the .app package up
zip.compress("Output/MultiMiner-" + shortAppVersion + ".app.zip", "Output/", "MultiMiner.app/*", true);
//remove the .app package
folder.remove("Output/MultiMiner.app", true);