refactor: split large files (electron, lib, hooks, scripts)

This commit is contained in:
webadderall
2026-04-20 21:00:34 +10:00
parent 2c00f18770
commit 8a22033a50
98 changed files with 16070 additions and 16932 deletions
@@ -0,0 +1,66 @@
name: Merge macOS metadata
description: Merge x64 and arm64 electron-updater metadata into a single latest-mac.yml file
inputs:
x64-directory:
description: Directory containing the x64 latest-mac.yml file
required: true
arm64-directory:
description: Directory containing the arm64 latest-mac.yml file
required: true
output-file:
description: Path where the merged latest-mac.yml should be written
required: true
runs:
using: composite
steps:
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install PyYAML
shell: bash
run: python -m pip install pyyaml
- name: Merge latest-mac.yml
shell: bash
env:
X64_DIRECTORY: ${{ inputs.x64-directory }}
ARM64_DIRECTORY: ${{ inputs.arm64-directory }}
OUTPUT_FILE: ${{ inputs.output-file }}
run: |
set -euo pipefail
mkdir -p "$(dirname "$OUTPUT_FILE")"
python <<'PY'
from pathlib import Path
import os
import yaml
x64_info = yaml.safe_load(Path(os.environ['X64_DIRECTORY'], 'latest-mac.yml').read_text())
arm64_info = yaml.safe_load(Path(os.environ['ARM64_DIRECTORY'], 'latest-mac.yml').read_text())
merged_files = []
seen_urls = set()
for info in (x64_info, arm64_info):
for file_info in info.get('files', []):
url = file_info.get('url')
if url and url not in seen_urls:
seen_urls.add(url)
merged_files.append(file_info)
if not merged_files:
raise SystemExit('No macOS update files found to merge.')
preferred = next((item for item in merged_files if 'x64' in item.get('url', '')), merged_files[0])
merged = dict(x64_info)
merged['files'] = merged_files
merged['path'] = preferred.get('url', merged.get('path'))
merged['sha512'] = preferred.get('sha512', merged.get('sha512'))
if not merged.get('releaseDate') and arm64_info.get('releaseDate'):
merged['releaseDate'] = arm64_info['releaseDate']
Path(os.environ['OUTPUT_FILE']).write_text(yaml.safe_dump(merged, sort_keys=False))
PY
+5 -43
View File
@@ -252,50 +252,12 @@ jobs:
name: macos-arm64-release
path: release-assets/macos-arm64
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install PyYAML
run: python -m pip install pyyaml
- name: Merge latest-mac.yml
shell: bash
run: |
set -euo pipefail
mkdir -p release-assets/merged
python <<'PY'
from pathlib import Path
import yaml
x64_info = yaml.safe_load(Path('release-assets/macos-x64/latest-mac.yml').read_text())
arm64_info = yaml.safe_load(Path('release-assets/macos-arm64/latest-mac.yml').read_text())
merged_files = []
seen_urls = set()
for info in (x64_info, arm64_info):
for file_info in info.get('files', []):
url = file_info.get('url')
if url and url not in seen_urls:
seen_urls.add(url)
merged_files.append(file_info)
if not merged_files:
raise SystemExit('No macOS update files found to merge.')
preferred = next((item for item in merged_files if 'x64' in item.get('url', '')), merged_files[0])
merged = dict(x64_info)
merged['files'] = merged_files
merged['path'] = preferred.get('url', merged.get('path'))
merged['sha512'] = preferred.get('sha512', merged.get('sha512'))
if not merged.get('releaseDate') and arm64_info.get('releaseDate'):
merged['releaseDate'] = arm64_info['releaseDate']
Path('release-assets/merged/latest-mac.yml').write_text(
yaml.safe_dump(merged, sort_keys=False)
)
PY
uses: ./.github/actions/merge-macos-metadata
with:
x64-directory: release-assets/macos-x64
arm64-directory: release-assets/macos-arm64
output-file: release-assets/merged/latest-mac.yml
- name: Upload merged latest-mac.yml artifact
uses: actions/upload-artifact@v4