mirror of
https://github.com/Heretek-Games/flatpark.git
synced 2026-10-12 02:05:52 +00:00
The publish run's expensive half is the OSTree repo: the flatpak toolchain install, the repo cache and the rclone pull of the whole object store from R2 (323s on the last run), then the push back. A push that cannot change a published byte — a site edit, config/featured.yml, a catalog-only descriptor edit like a developer-approved flip, metainfo/icons — pays all of it to upload nothing. scripts/publish-scope.sh decides that up front and prints "site" or "full". It answers "full" for anything not provably repo-neutral: publish tooling (scripts/, config/flatpark.conf, publish.yml), a build-relevant app change (changed-apps.sh), an app added or de-listed, or a rename (the .flatpakref Title). The workflow gates the toolchain, the signing key, the repo cache, both R2 syncs, the summary re-sign and the .published-sha write on it; the site build and the Pages deploy always run. The diff base is .published-sha read straight from R2 (rclone cat, no sync), so a failed publish keeps its registry changes in the diff and the next push still runs full. A site publish leaves the marker alone for the same reason. Co-authored-by: Claude Opus 5 <[email protected]>