-
Notifications
You must be signed in to change notification settings - Fork 0
/
publish.py
53 lines (42 loc) · 1.95 KB
/
publish.py
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
import os
import shutil
from glob import glob
customargs="-c Release /p:DebugSymbols=false /p:DebugType=None"
rids = ["linux-x64","linux-musl-x64","linux-arm64","linux-musl-arm64","win-x64","win-arm64"]
BLUE='\033[1;34m'
NC='\033[0m' # No Color
def main():
shutil.rmtree("./publish", ignore_errors=True)
delete_build_folders()
os.system("dotnet clean")
for rid in rids:
print(f"{BLUE}Building Server {rid}{NC}")
os.system(f"dotnet publish ./src/TauStellwerk.Server/ -r {rid} -o ./publish/TauStellwerk.Server-{rid} {customargs}")
remove_unneeded_files(rid)
pack(rid, "Server")
for rid in rids:
print(f"{BLUE}Building Desktop {rid}{NC}")
os.system(f"dotnet publish ./src/TauStellwerk.Desktop/ -r {rid} -o ./publish/TauStellwerk.Desktop-{rid}")
pack(rid, "Desktop")
def remove_unneeded_files(rid):
if os.path.exists(f"./publish/TauStellwerk.Server-{rid}/appsettings.Development.json"):
os.remove(f"./publish/TauStellwerk.Server-{rid}/appsettings.Development.json")
if os.path.exists(f"./publish/TauStellwerk.Server-{rid}/web.config"):
os.remove(f"./publish/TauStellwerk.Server-{rid}/web.config")
shutil.rmtree(f"./publish/TauStellwerk.Server-{rid}/BlazorDebugProxy")
for file in glob(f"./publish/TauStellwerk.Server-{rid}/*.xml"):
os.remove(file)
def pack(rid,type):
if rid.startswith("linux"):
shutil.make_archive(f"./publish/TauStellwerk.{type}-{rid}", "gztar", f"./publish/TauStellwerk.{type}-{rid}")
elif rid.startswith("win"):
shutil.make_archive(f"./publish/TauStellwerk.{type}-{rid}", "zip", f"./publish/TauStellwerk.{type}-{rid}")
else:
raise Exception("Unkown platform")
shutil.rmtree(f"./publish/TauStellwerk.{type}-{rid}")
def delete_build_folders():
for folder in glob("./src/*/obj"):
shutil.rmtree(folder)
for folder in glob("./src/*/bin"):
shutil.rmtree(folder)
main()