diff options
| author | user <user@clank> | 2026-08-27 00:21:01 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-08-27 00:21:01 +0200 |
| commit | 2d1815f8555394a14d331e251a55cd7d7918ab66 (patch) | |
| tree | 41ce629b371276d24cdde9ddd5a86ce519030ee0 | |
| parent | macos: the pipeline is the project's, the identity is yours (diff) | |
| download | slosh-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-x | contrib/macos-remote-build | 13 |
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)')" |
