22 lines
1.2 KiB
Python
22 lines
1.2 KiB
Python
"""Portable release metadata check. No ComfyUI or optional modules required."""
|
|
import json
|
|
import re
|
|
import subprocess
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
root = Path(__file__).resolve().parents[1]
|
|
version = re.search(r'^version\s*=\s*"([^"]+)"', (root / "pyproject.toml").read_text(), re.M)[1]
|
|
package = json.loads((root / "gallery_ui/package.json").read_text())
|
|
lock = json.loads((root / "gallery_ui/package-lock.json").read_text())
|
|
assert version == package["version"] == lock["version"] == lock["packages"][""]["version"], "Version mismatch"
|
|
assert f"## {version}" in (root / "CHANGELOG.md").read_text(encoding="utf-8-sig"), "Missing changelog"
|
|
subprocess.run([sys.executable, str(root / "scripts/release_notes.py"), "--check"], check=True)
|
|
assert json.loads((root / "gallery_ui/dist/release-version.json").read_text())["version"] == version, "Rebuild dist for this version"
|
|
index = (root / "gallery_ui/dist/index.html").read_text()
|
|
assets = re.findall(r'(?:src|href)="/gallery/([^"?#]+)"', index)
|
|
assert assets, "Missing built assets"
|
|
for asset in assets:
|
|
assert (root / "gallery_ui/dist" / asset).is_file(), f"Missing asset: {asset}"
|
|
print(f"Release metadata verified: {version}")
|