Website update mechanics
tools/update_website.sh - run at release time after the assets exist. What it does (each step verifiable):
- Reads the three assets from
dist/, computes SHA256 + size. - Regenerates the site's data file (
site.tsconstants: RELEASE / ISO / SRC / OTA names + hashes + sizes) from those values - no hand-editing of versions anywhere. - Regenerates
update.json+update-v2.json(version, build, time, changes text, package URL/sha/size) from the manifest template + the release notes. - Runs the hash gate: the downloads directory's files must match the constants before anything is pushed.
- Builds the static site and pushes gh-pages.
Verification after it runs:
https://cubestudio-dev.github.io/OpenCubeOS/update.jsonshows the new version/build/sha.- The download page's three hashes equal the Release's three.
curl -sL <asset-url> | sha256sumon each asset equals its declared SHA256.
The script is idempotent per release: rerunning with the same dist/ produces the same pages (deterministic templates).