clone

a personal forge on plain git: static pages, stacked-diff reviews, signed local ci, repo sites and releases

Keep public pages' stylesheets through a private repo's build

cat committed b3db930
A private build ran 11ty with FORGE_WWW=$out FORGE_PUBLIC_WWW=$FORGE_WWW
in one command's assignments, and the second saw the first, so the
public root it shipped assets against was its own scratch directory. It
then swapped those assets into www/assets, carrying over nothing the
public pages had linked: every page whose CSS bundle no private page
renders lost its styles at the next private build, the reviews list
first, and a full build didn't bring them back while those pages were
unchanged. The public root is now named before the assignments. The
new scenario checks every stylesheet public pages link after public,
private and full builds; it fails without the fix.
commit
b3db93038c62d33b856ecbd52a28c7bc3028fc05
parent
93e7cb4184d710b4dd2389c7f2ebd41c7147c081
author
cat <admin@dev.site>
ci
✓ passed in 81s, signed by cat
kind
fix risk score 1.1 of 3, Jev's estimate
review
#8 Keep public pages' stylesheets through a private build
ci attestation
forge-attestation 1
type ci
commit b3db93038c62d33b856ecbd52a28c7bc3028fc05
tree 80d811f4395c321700fb6035d734e9a80e2cae63
script .forge/ci 38df37c0d5a6382f60569079a0dd821094e37e4a
result pass
exit 0
started 2026-10-18T23:48:49Z
duration 81s
runner (not shown here; refs/notes/ci has it)
system Darwin 25.5.0 arm64
env host
log sha256:fefe2ab06c4b817cb8fd63f8ef8fad93aa47fa6f1c0559ae4c1000bf29dfe979 242 lines
|remote: review #4: /dami/greet/reviews/4/
|pushed wip/i18n
|216a1b1 running .forge/ci: greet.sh: say what it is
|  | sh: /bin/sh
|  | ok   greet
|216a1b1 pass in 0s, signed
|pushed main
|remote: review #4: /dami/greet/reviews/4/
|pushed wip/i18n
|4acafda running .forge/ci: wave at the world
|  | sh: /bin/sh
|  | FAIL greet : got 'hello, world o/', want 'hello, world'
|4acafda fail in 0s, signed
|forge: 1 commit(s) did not pass
|remote: review #6: /dami/greet/reviews/6/
|pushed ana/wave
|0277854 running .forge/ci: update the test for the wave
|  | sh: /bin/sh
|  | ok   greet
|0277854 pass in 0s, signed
|remote: review #6: /dami/greet/reviews/6/
|pushed ana/wave
|warning: You appear to have cloned an empty repository.
|site home: deployed 6483129 -> /sites/ana/dotfiles/home/
|created ana/notes
|remote: review #1: /ana/notes/reviews/1/
|pushed ana/todo
|landing #1 A todo list: ana/todo -> main
|1fab8cf running .forge/ci: web, server and Python versions of greet
|  | sh: /bin/sh
|  | ok   greet
|1fab8cf pass in 0s, signed
|pushed main
|f69ad0f running .forge/ci: messages: notes for the later regions
|  | sh: /bin/sh
|  | ok   greet
|f69ad0f pass in 0s, signed
|remote: review #7: /dami/greet/reviews/7/
|pushed dami/regions
|created dami/forge
|warning: You appear to have cloned an empty repository.
|site guide: deployed ff0c892 -> /sites/dami/forge/guide/
|(node:18657) ExperimentalWarning: stripTypeScriptTypes is an experimental feature and might change at any time
|(Use `node --trace-warnings ...` to show where the warning was created)
|built ana/dotfiles in 0s -> /Users/dami/Library/Caches/forge/ci/35f7a65d0235/demo/root/.forge/www
|(node:18781) ExperimentalWarning: stripTypeScriptTypes is an experimental feature and might change at any time
|(Use `node --trace-warnings ...` to show where the warning was created)
|built ana/notes in 1s -> /Users/dami/Library/Caches/forge/ci/35f7a65d0235/demo/root/.forge/www
|(node:18929) ExperimentalWarning: stripTypeScriptTypes is an experimental feature and might change at any time
|(Use `node --trace-warnings ...` to show where the warning was created)
|built dami/forge in 0s -> /Users/dami/Library/Caches/forge/ci/35f7a65d0235/demo/root/.forge/www
|(node:19063) ExperimentalWarning: stripTypeScriptTypes is an experimental feature and might change at any time
|(Use `node --trace-warnings ...` to show where the warning was created)
|built dami/greet in 2s -> /Users/dami/Library/Caches/forge/ci/35f7a65d0235/demo/root/.forge/www
|(node:19739) ExperimentalWarning: stripTypeScriptTypes is an experimental feature and might change at any time
|(Use `node --trace-warnings ...` to show where the warning was created)
|built - in 0s -> /Users/dami/Library/Caches/forge/ci/35f7a65d0235/demo/root/.forge/www
|226 of 226 pages render the same without 11ty
|guide: 4 files, links ok
|ok

Signature: good, cat

2 files changed, +37 -1
Mbin/forge7++++++-
Atest/scenarios/private-build-assets.sh31++++++++++++++++++++++++++++++
M bin/forge +6 -1
A test/scenarios/private-build-assets.sh +31 -0