forge attest runs .forge/ci in a clean worktree of each commit. It signs the result into refs/notes/ci. The script runs the test job of the release workflow. The Cargo target directory is in ~/.cache/devsite/target, outside the worktree, so a run does not compile all dependencies again.
- commit
- 0356ff0d8057970fa8548d1ece1d8f40239e9d36
- parent
- 2222e3b006dfc9107791d147eb93a8571933bf41
- author
- cat <admin@dev.site>
- ci
- ✓ passed in 82s, signed by cat
ci attestation
forge-attestation 1 type ci commit 0356ff0d8057970fa8548d1ece1d8f40239e9d36 tree d1c18acd716e8cf4d0bfcdb56ad9435a11af2565 script .forge/ci 6e9d0d6e774653c1c01b32464b0636c2ef6c753b result pass exit 0 started 2026-10-17T22:56:35Z duration 82s runner (not shown here; refs/notes/ci has it) system Darwin 25.5.0 arm64 env host log sha256:78f2ed59b2939d5005e4bbc9166d36d525af9d0a98003060ad8eeb3927e56ed7 632 lines | Doc-tests devsite_daemon | |running 0 tests | |test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s | | Doc-tests devsite_iroh | |running 0 tests | |test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s | | Doc-tests devsite_proto | |running 0 tests | |test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s | | |> check:web |> npm run typecheck:web && npm run lint:web && npm run build:web | | |> typecheck:web |> tsc --noEmit | | |> lint:web |> biome lint web | |Checked 10 files in 8ms. No fixes applied. | |> build:web |> esbuild web/app.ts --bundle --format=esm --legal-comments=none --outfile=web/pkg/app.js --sourcemap --target=es2022 | | | web/pkg/app.js 38.8kb | web/pkg/app.js.map 68.3kb | |⚡ Done in 5ms | |> test:web |> npm run build:web && playwright test | | |> build:web |> esbuild web/app.ts --bundle --format=esm --legal-comments=none --outfile=web/pkg/app.js --sourcemap --target=es2022 | | | web/pkg/app.js 38.8kb | web/pkg/app.js.map 68.3kb | |⚡ Done in 4ms | |Running 3 tests using 1 worker | |[1/3] web/app.spec.ts:33:1 › the signed-out home uses a font-independent wordmark |[2/3] web/app.spec.ts:47:1 › an incoming share uses the Fixi UI endpoint |[3/3] web/app.spec.ts:111:1 › a profile hydrates and updates from one SSEXi response | 3 passed (2.7s)
Signature: good, cat
| A | .forge/ | 12 | ++++++++++++ |
@@ -0,0 +1,12 @@
1+2+# CI for src.rest. It runs the test job of the release workflow: cargo test,3+# npm run check:web and the Playwright tests in npm run test:web.4+set -eu5+# Keep the Cargo build outside the worktree, so each run does not compile6+# every dependency from source again.7+export CARGO_TARGET_DIR="${XDG_CACHE_HOME:-$HOME/.cache}/devsite/target"8+npm ci --no-audit --no-fund9+npx --no-install playwright install chromium10+cargo test --workspace --locked11+npm run check:web12+npm run test:web