forge attest runs .forge/ci in a clean worktree of each commit and signs the result into refs/notes/ci; forge push sends it with the branch. It runs what the CI workflow runs: golangci-lint v1.64.8 on Go 1.24.5 (v1 can't read newer Go export data, and .golangci.yml is a v1 config), then go vet and go test. The linter is built once into ~/.cache/puzzletea, outside the worktree.
- commit
- ccf3f3d644b55f1d402999d33263e69b84317dac
- parent
- 33947d643339b67e7e2d7157e305d3bad2811efb
- author
- cat <admin@dev.site>
- ci
- ✓ passed in 92s, signed by cat
ci attestation
forge-attestation 1 type ci commit ccf3f3d644b55f1d402999d33263e69b84317dac tree 16f587c83efa4586aae0e5fdc58ad209bb89b14e script .forge/ci ecd7587d9f54289a65b971dd2c69c4db839756cd result pass exit 0 started 2026-10-17T23:01:43Z duration 92s runner (not shown here; refs/notes/ci has it) system Darwin 25.5.0 arm64 env host log sha256:9950cd31a4040d7107b0d65b0ed56c25f7fa159117f8a3893d822d1290a6c985 39 lines |ok github.com/FelineStateMachine/puzzletea 3.188s |ok github.com/FelineStateMachine/puzzletea/app 1.288s |ok github.com/FelineStateMachine/puzzletea/catalog 2.657s |ok github.com/FelineStateMachine/puzzletea/cmd 0.418s |ok github.com/FelineStateMachine/puzzletea/config 0.495s |ok github.com/FelineStateMachine/puzzletea/daily 2.259s |ok github.com/FelineStateMachine/puzzletea/difficulty 1.645s |ok github.com/FelineStateMachine/puzzletea/export/builtinprint 1.304s |ok github.com/FelineStateMachine/puzzletea/export/pack 3.898s |ok github.com/FelineStateMachine/puzzletea/export/pdf 2.421s |ok github.com/FelineStateMachine/puzzletea/game 2.834s |ok github.com/FelineStateMachine/puzzletea/gameentry 1.815s |ok github.com/FelineStateMachine/puzzletea/games/fillomino 1.541s |ok github.com/FelineStateMachine/puzzletea/games/hashiwokakero 1.998s |ok github.com/FelineStateMachine/puzzletea/games/hitori 7.777s |ok github.com/FelineStateMachine/puzzletea/games/lightsout 0.680s |ok github.com/FelineStateMachine/puzzletea/games/netwalk 3.369s |ok github.com/FelineStateMachine/puzzletea/games/nonogram 4.576s |ok github.com/FelineStateMachine/puzzletea/games/nurikabe 79.304s |ok github.com/FelineStateMachine/puzzletea/games/rippleeffect 9.766s |ok github.com/FelineStateMachine/puzzletea/games/shikaku 3.993s |ok github.com/FelineStateMachine/puzzletea/games/spellpuzzle 3.651s |ok github.com/FelineStateMachine/puzzletea/games/sudoku 3.753s |ok github.com/FelineStateMachine/puzzletea/games/sudokurgb 3.685s |ok github.com/FelineStateMachine/puzzletea/games/takuzu 3.849s |ok github.com/FelineStateMachine/puzzletea/games/takuzuplus 16.020s |ok github.com/FelineStateMachine/puzzletea/games/wordsearch 3.800s |? github.com/FelineStateMachine/puzzletea/internal/testjsonl [no test files] |ok github.com/FelineStateMachine/puzzletea/namegen 3.702s |ok github.com/FelineStateMachine/puzzletea/puzzle 3.700s |ok github.com/FelineStateMachine/puzzletea/registry 3.750s |ok github.com/FelineStateMachine/puzzletea/resolve 3.747s |ok github.com/FelineStateMachine/puzzletea/schedule 3.586s |ok github.com/FelineStateMachine/puzzletea/session 3.666s |ok github.com/FelineStateMachine/puzzletea/stats 3.320s |ok github.com/FelineStateMachine/puzzletea/store 3.202s |ok github.com/FelineStateMachine/puzzletea/theme 2.997s |ok github.com/FelineStateMachine/puzzletea/ui 2.923s |ok github.com/FelineStateMachine/puzzletea/weekly 3.039s
Signature: good, cat
| A | .forge/ | 13 | +++++++++++++ |
@@ -0,0 +1,13 @@
1+2+# CI for src.rest: the CI workflow's lint and test jobs, golangci-lint v1 on Go3+# 1.24 (the version .golangci.yml is written for), then go vet and go test ./...4+set -eu5+# golangci-lint v1 cannot read the export data of newer Go releases, so it is6+# built once with Go 1.24.5 into a cache outside the worktree and runs on it.7+lint=${XDG_CACHE_HOME:-$HOME/.cache}/puzzletea/golangci-lint-1.64.8-go1.24.58+if [ ! -x "$lint/golangci-lint" ]; then9+ GOTOOLCHAIN=go1.24.5 GOBIN=$lint go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.64.810+fi11+GOTOOLCHAIN=go1.24.5 "$lint/golangci-lint" run ./...12+go vet ./...13+go test ./...