The repository grew ~64MB a release and never gave any of it back: at build 14 that was 762MB in public/ and 590MB in .git, stored twice on the VPS. The cost nobody had counted was the image — public/ is copied into it, so a deploy built 1.3GB of nginx, and Coolify keeps the old ones for rollback. That is what filled the server's root filesystem and failed a push with "no space left on device". Nothing ever asks for an older build on purpose, so release.py now deletes all but the newest three of each kind once the new one is staged. Each kind is counted on its own: Linux is published rarely, and latest-linux.tar.gz has to keep resolving through the releases that skip it. Both symlinks point at the build just staged, which is the highest numbered one, so they survive the prune by construction and /manifest.json never named anything but the newest. This trims the working tree to 200MB. It does not shrink .git, which still holds all fourteen builds; pruning that rewrites history and is a separate decision. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 lines
87 B
Text
2 lines
87 B
Text
# release.py runs "git add -A"; nothing here belongs in a release commit.
|
|
__pycache__/
|