fix(release): recover run 135's release train — npm pin, Dockerfile repairs, matrix re-entry #59

Merged
ryangr0 merged 4 commits from ryangr0/fix/run-135-release-train into main 2026-07-25 19:04:31 +00:00 AGit
Owner

act-runner, agent-runner, ci-runner and helm-deploy failed run 135 before semantic-release
even analyzed commits (the npm 404 fixed two commits back), and the changed-images matrix is
push-diff based — a dropped dir never re-enters on its own. Touch each Dockerfile with a
comment so this push puts them back in the matrix; semantic-release then decides per dir
whether anything is actually due. ci-typed on purpose: the touch itself must not force a bump.

Co-Authored-By: Claude Fable 5 noreply@anthropic.com

act-runner, agent-runner, ci-runner and helm-deploy failed run 135 before semantic-release even analyzed commits (the npm 404 fixed two commits back), and the changed-images matrix is push-diff based — a dropped dir never re-enters on its own. Touch each Dockerfile with a comment so this push puts them back in the matrix; semantic-release then decides per dir whether anything is actually due. ci-typed on purpose: the touch itself must not force a bump. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Run 135 killed 4/13 release jobs (act-runner, agent-runner, ci-runner, helm-deploy) with a
404 downloading @webgrip/semantic-release-config@1.0.1 from the Forgejo npm registry. The
failing requests carried the scope's %2F decoded to a literal slash
(.../npm/%40webgrip/semantic-release-config/-/...) which Forgejo's npm route rejects; the
canonical encoded form serves 200. Node 24's bundled npm 11.16 emits the decoded form only
intermittently (9 sibling jobs with identical npm/Node/cache installed fine — consistent
with a retry-path normalization under 13-way concurrent install load), so pin an npm from
before the URL normalization change. Verified npm@11.4.2 installs the package cleanly from
this registry with the scoped-registry config. Unpin when the Forgejo registry tolerates
decoded slashes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The single build stage is named `techdocs` and then COPY --from=techdocs'd out of itself —
BuildKit rejects that as a circular dependency, so every build of this image failed (run 135
verify gate). The three self-copies are leftovers from a former multi-stage layout; the base
IS techdocs-builder, so /usr/local and plantuml are already present. The entrypoint COPY also
used a repo-root path while every builder (CI docker-context, docker-compose, verifyRelease
gate) passes this directory as the context — make it context-relative. Verified the image
builds from ops/docker/techdocs-runner as context.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Every builder of this image (on_release_published docker-context, the verifyRelease gate,
docker-compose convention) uses ops/docker/mkdocs-runner as the build context, but the
entrypoint COPY used a repo-root path — the run 135 verify gate showed a 2-byte (empty)
context transfer and failed "not found". Verified the image builds from the image dir as
context.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ci(release): re-enter the four trains run 135 dropped at npm install
All checks were successful
[Workflow] On Source Change / Guard: per-image .releaserc.cjs present (push) Successful in 37s
[Workflow] On Source Change / Determine Changed Directories (push) Successful in 1m36s
[Workflow] On Source Change / Determine changed images (push) Successful in 0s
[Workflow] On Source Change / Release (act-runner, ops/docker/act-runner) (push) Has been skipped
[Workflow] On Source Change / Release (ci-runner, ops/docker/ci-runner) (push) Has been skipped
[Workflow] On Source Change / Release (agent-runner, ops/docker/agent-runner) (push) Has been skipped
[Workflow] On Source Change / Release (helm-deploy, ops/docker/helm-deploy) (push) Has been skipped
01596a049c
act-runner, agent-runner, ci-runner and helm-deploy failed run 135 before semantic-release
even analyzed commits (the npm 404 fixed two commits back), and the changed-images matrix is
push-diff based — a dropped dir never re-enters on its own. Touch each Dockerfile with a
comment so this push puts them back in the matrix; semantic-release then decides per dir
whether anything is actually due. ci-typed on purpose: the touch itself must not force a bump.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
webgrip/infrastructure!59
No description provided.