Files

26 lines
1.3 KiB
Python
Raw Permalink Normal View History

"""Fast static checks before producing an official release archive."""
from pathlib import Path
import re
import subprocess
import sys
ROOT=Path(__file__).resolve().parent.parent
sys.path.insert(0,str(ROOT))
from app.version import VERSION
assert VERSION=='8.34.1-dev.1'
api=(ROOT/'app'/'main.py').read_text(encoding='utf-8')
assert 'return builder.build(' not in api, 'A synchronous request-thread build has reappeared'
assert "@app.post('/api/sites/{site_id}/builds', status_code=202)" in api
assert 'VERSION' in api
for name in ('automotive','industrial','corporate','minimal'):
theme=ROOT/'themes'/name
manifest=theme/'manifest.json'
assert manifest.is_file() and (theme/'pro.html').is_file()
assert len(list((theme/'pages').glob('*.html')))>=14
for file in (ROOT/'requirements.lock',ROOT/'requirements-dev.lock'):
pins=[ln for ln in file.read_text(encoding='utf-8').splitlines() if ln and not ln.startswith('#')]
assert pins and all(re.fullmatch(r'[a-zA-Z0-9_.-]+==[0-9][a-zA-Z0-9_.!+\-]*',ln) for ln in pins)
assert (ROOT/'.github/workflows/ci.yml').is_file()
for file in (ROOT/'app/static').glob('*.js'):
subprocess.run(['node','--check',str(file)],check=True)
print('PASS: version, 5× themes, worker route, pinned dependencies, CI workflow, JS syntax')