aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoruser <user@clank>2026-08-27 00:21:01 +0200
committeruser <user@clank>2026-08-27 00:21:01 +0200
commit2d1815f8555394a14d331e251a55cd7d7918ab66 (patch)
tree41ce629b371276d24cdde9ddd5a86ce519030ee0
parentmacos: the pipeline is the project's, the identity is yours (diff)
downloadslosh-2d1815f8555394a14d331e251a55cd7d7918ab66.tar.gz
slosh-2d1815f8555394a14d331e251a55cd7d7918ab66.tar.xz
slosh-2d1815f8555394a14d331e251a55cd7d7918ab66.zip
macos-remote-build: stop rsyncing 850M of caches to the builder
The working-tree sync excluded two of the three gitignored vendor/libghostty-vt zig caches but not zig-pkg/ (354M), so every run silently re-pushed it. With rsync -a and no progress output that looked like a hang on the rsync step. Add the missing zig-pkg/ exclude (keeping the list in step with .gitignore), plus web/ (~430M landing page/demo) and tests/fuzz/ (~120M corpus), neither of which is an input to `make all` -- all the builder runs. Cuts the sync from ~1.2G/48k files to 350M/9.6k. Only affects the default working-tree mode; REF=<tag> builds check out on the builder via git and were unaffected.
-rwxr-xr-xcontrib/macos-remote-build13
1 files changed, 12 insertions, 1 deletions
diff --git a/contrib/macos-remote-build b/contrib/macos-remote-build
index 52aafa0..fe6e8da 100755
--- a/contrib/macos-remote-build
+++ b/contrib/macos-remote-build
@@ -129,16 +129,27 @@ if [ -n "$REF" ]; then
else
step "syncing the working tree"
# --delete so a file removed here is removed there; build outputs and the
- # vendored zig cache are excluded, which also protects them from --delete.
+ # vendored zig caches are excluded, which also protects them from --delete.
# .git goes too, so `git describe` on the builder tells the truth about the
# tree it was handed. Its info/exclude does not: that names the untracked
# files *the builder* keeps, and overwriting it with ours makes them show
# up as debris in its `git status` and as fair game for `git clean`.
+ #
+ # The three vendor/libghostty-vt caches below must stay in step with the
+ # .gitignore entries of the same name -- they are gigabytes of gitignored
+ # zig cache, and when zig-pkg/ (350M) was in .gitignore but missing here,
+ # every sync silently re-pushed it and looked like a hang. web/ (the
+ # landing page, ~430M with the demo) and tests/fuzz/ (the ~120M corpus)
+ # are tracked but are not inputs to `make all`, which is all the builder
+ # runs, so they are excluded too: sync what the signed binary needs.
rsync -a --delete \
--exclude '/build/' --exclude '/dist/' --exclude '/.venv/' \
--exclude '/.git/info/exclude' \
--exclude 'vendor/libghostty-vt/zig-out/' \
--exclude 'vendor/libghostty-vt/.zig-cache/' \
+ --exclude 'vendor/libghostty-vt/zig-pkg/' \
+ --exclude '/web/' \
+ --exclude '/tests/fuzz/' \
--exclude '.DS_Store' \
"$root/" "$BUILDER:$DIR/" || fail "rsync failed"
say "synced $(cd "$root" && git rev-parse --short HEAD 2>/dev/null || echo '?')$(cd "$root" && git diff --quiet 2>/dev/null || echo ' (dirty)')"