Exercise local source publication

This commit is contained in:
2026-10-08 16:44:08 +00:00
parent f9ec143130
commit d3f0891225
2 changed files with 355 additions and 1 deletions

View File

@@ -290,7 +290,7 @@ path, build, and delegation responsibilities. Commit the stage.
## Stage 4: exercise real publication against disposable Git repositories
**Status:** pending. **Prerequisite:** Stage 3 and prepared dependency caches.
**Status:** complete. **Prerequisite:** Stage 3 and prepared dependency caches.
**Files:** `scripts/release_integration_test.go`, supporting fixture helpers in
that tests-only package if needed, and stage evidence in this plan.
@@ -348,6 +348,21 @@ Record the passed publication and preflight observations. This exercise uses
no real remote, credentials, provider, binary target, or hosted page. Retain the
opt-in test for future tooling changes, without placing it in `releasekit.json`.
Observed 2026-10-08: after `GOWORK=off GOTOOLCHAIN=local go mod download`, this
offline publication exercise passed:
```sh
COMMANDKIT_RELEASE_INTEGRATION=1 GOWORK=off GOTOOLCHAIN=local GOPROXY=off GONOPROXY=none GOSUMDB=off go test -mod=readonly -count=1 ./scripts -run '^TestReleaseIntegration$'
```
The local publication produced an annotated
`v0.0.1` tag whose object matched the bare remote and pointed to the candidate;
remote `main` retained that commit, the candidate suite wrote one marker, the
worktree was clean, and no `dist` output appeared. A second candidate with a
mismatched expected endpoint returned status 1 with the endpoint diagnostic,
added no tag, and did not run the suite again. The exercise used only temporary
local Git repositories and the real cached module-selected publisher.
**Completion:** the actual module-selected executable and copied integration
publish a source tag locally and respect the configured endpoint guard. Commit
the stage.