Skip to content

Commit 4b39f2d

Browse files
committed
Made github releases sparse, only uploading changed port zips.
1 parent 8b338d4 commit 4b39f2d

File tree

2 files changed

+50
-26
lines changed

2 files changed

+50
-26
lines changed

.github/workflows/release.yaml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,14 @@ jobs:
4545
repository: ${{ github.repository }}
4646
latest: true
4747
out-file-path: "releases"
48-
fileName: "*"
48+
fileName: "*.json"
49+
50+
- uses: robinraju/[email protected]
51+
with:
52+
repository: ${{ github.repository }}
53+
latest: true
54+
out-file-path: "releases"
55+
fileName: "images.zip"
4956

5057
######################################################################
5158
## Only run these if it is the PortMaster-New repo
@@ -83,6 +90,7 @@ jobs:
8390
python3 tools/build_data.py
8491
python3 tools/build_release.py "${{steps.date.outputs.date}}"
8592
rm -fv releases/.gitignore
93+
rm -f releases/*.squashfs
8694
8795
- name: "Prepare Release"
8896
uses: ncipollo/release-action@v1

tools/build_release.py

Lines changed: 41 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -95,17 +95,22 @@
9595

9696
#############################################################################
9797
## Stuff.
98-
BASE_RELEASE_URL = f"https://github.com/{REPO_CONFIG['RELEASE_ORG']}/{REPO_CONFIG['RELEASE_REPO']}/releases/latest/download/"
9998

10099
if len(sys.argv) > 1 and sys.argv[1] != '--do-check':
101-
CURRENT_RELEASE_URL = f"https://github.com/{REPO_CONFIG['RELEASE_ORG']}/{REPO_CONFIG['RELEASE_REPO']}/releases/download/{sys.argv[1]}/"
102-
100+
CURRENT_RELEASE_ID = sys.argv[1]
103101
else:
104-
CURRENT_RELEASE_URL = BASE_RELEASE_URL
102+
CURRENT_RELEASE_ID = "latest"
105103

106104
#############################################################################
107105

108106

107+
def current_release_url(release_id):
108+
if release_id == 'latest':
109+
return f"https://github.com/{REPO_CONFIG['RELEASE_ORG']}/{REPO_CONFIG['RELEASE_REPO']}/releases/latest/download/"
110+
111+
return f"https://github.com/{REPO_CONFIG['RELEASE_ORG']}/{REPO_CONFIG['RELEASE_REPO']}/releases/download/{release_id}/"
112+
113+
109114
def runtime_nicename(runtime):
110115
if runtime.startswith("frt"):
111116
return ("Godot/FRT {version}").format(version=runtime.split('_', 1)[1].rsplit('.', 1)[0])
@@ -333,19 +338,20 @@ def build_port_zip(root_dir, port_dir, port_data, new_manifest, port_status):
333338
for file_pair in zip_files:
334339
zf.write(file_pair[0], file_pair[1])
335340

336-
port_name = port_data['name']
337-
port_hash = hash_file(zip_name)
341+
# port_name = port_data['name']
342+
# port_hash = hash_file(zip_name)
338343

339-
if port_name in port_status:
340-
port_status[port_name]['date_updated'] = TODAY
341-
port_status[port_name]['md5'] = port_hash
342-
343-
else:
344-
port_status[port_name] = {
345-
'date_added': TODAY,
346-
'date_updated': TODAY,
347-
'md5': port_hash,
348-
}
344+
# if port_name in port_status:
345+
# port_status[port_name]['date_updated'] = TODAY
346+
# port_status[port_name]['md5'] = port_hash
347+
# port_status[port_name]
348+
# else:
349+
# port_status[port_name] = {
350+
# 'date_added': TODAY,
351+
# 'date_updated': TODAY,
352+
# 'release_id': CURRENT_RELEASE_ID,
353+
# 'md5': port_hash,
354+
# }
349355

350356

351357
def build_images_zip(old_manifest, new_manifest):
@@ -462,29 +468,37 @@ def build_markdown_zip(old_manifest, new_manifest):
462468
def port_info(file_name, ports_json, ports_status):
463469
clean_name = name_cleaner(file_name.name)
464470

465-
file_md5 = hash_file(file_name)
471+
if file_name.is_file():
472+
file_md5 = hash_file(file_name)
473+
file_size = file_name.stat().st_size
474+
else:
475+
if clean_name not in ports_status:
476+
# HRMMmmmmm o_o;;;;
477+
return
478+
479+
file_md5 = ports_status[clean_name]['md5']
480+
file_size = ports_status[clean_name]['size']
466481

467482
default_status = {
468-
'md5': file_md5,
469483
'date_added': TODAY,
470484
'date_updated': TODAY,
485+
'md5': file_md5,
486+
'size': file_size,
487+
'release_id': CURRENT_RELEASE_ID,
471488
}
472489

473490
if clean_name not in ports_status:
474491
ports_status[clean_name] = default_status
475492

476-
elif ports_status[clean_name]['md5'] is None:
477-
ports_status[clean_name]['md5'] = file_md5
478-
479493
elif ports_status[clean_name]['md5'] != file_md5:
480494
ports_status[clean_name]['md5'] = file_md5
495+
ports_status[clean_name]['size'] = file_size
496+
ports_status[clean_name]['release_id'] = CURRENT_RELEASE_ID,
481497
ports_status[clean_name]['date_updated'] = TODAY
482498

483499
if clean_name in ports_json:
484500
ports_json[clean_name]['source'] = ports_status[clean_name].copy()
485-
486-
ports_json[clean_name]['source']['size'] = file_name.stat().st_size
487-
ports_json[clean_name]['source']['url'] = CURRENT_RELEASE_URL + (file_name.name.replace(" ", ".").replace("..", "."))
501+
ports_json[clean_name]['source']['url'] = current_release_url(ports_status[clean_name]['release_id']) + (file_name.name.replace(" ", ".").replace("..", "."))
488502

489503

490504
def util_info(file_name, util_json):
@@ -494,15 +508,17 @@ def util_info(file_name, util_json):
494508

495509
if file_name.name.lower().endswith('.squashfs'):
496510
name = runtime_nicename(file_name.name)
511+
url = "https://github.com/PortsMaster/PortMaster-Runtime/releases/download/runtimes/" + (file_name.name.replace(" ", ".").replace("..", "."))
497512

498513
else:
499514
name = file_name.name
515+
url = current_release_url(CURRENT_RELEASE_ID) + (file_name.name.replace(" ", ".").replace("..", "."))
500516

501517
util_json[clean_name] = {
502518
"name": name,
503519
'md5': file_md5,
504520
'size': file_name.stat().st_size,
505-
'url': CURRENT_RELEASE_URL + (file_name.name.replace(" ", ".").replace("..", ".")),
521+
'url': url,
506522
}
507523

508524

0 commit comments

Comments
 (0)