ci: run integration tests on the forge runner; keep publish gated on unit tests #57
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
iterative-works/claude-code-query!57
Loading…
Reference in a new issue
No description provided.
Delete branch "ci/drop-itest-publish-gate"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Two related CI changes for the Forgejo migration:
ci.ymlandpublish.ymlboth only ran__.test. This adds a dedicateditestjob toci.yml(needs: compile) that runs./mill __.iteston every PR.__.testonly (commited12dd2) — itest is a PR gate, not a publish gate.Why the
--initcontainer__.itestspawns real OS processes.direct.itest'sProcessManagerTestcleanup tests count system-wide zombies and expect them to return to baseline, which needs a zombie-reaping init as PID 1. On the forge runner the job container's PID 1 is the job shell (no reaper), so those assertions fail where they pass on a full VM.The
itestjob runs incontainer: catthehacker/ubuntu:act-latest(the runner'subuntu-latestlabel mapping) withoptions: --init, so tini runs as PID 1 and reaps the orphanedsh/sleepchildren the timeout/failure tests leave behind.No secrets needed
Every test that drives the real Claude CLI is a guarded
*E2ETestthat self-skips viaassume(isClaudeCliInstalled(), ...)whenclaudeis absent (PATH-only probe, catches all exceptions → munit ignores). All other itests use mock CLI scripts or deliberately-failing commands. So the itest job needs no API key or CLI install.Publishing (unchanged)
publish.ymlalready targets both registries: Forgejo Maven on everymainpush + tags, Maven Central (PGP-signed) onv*tags only.Validation
act_runnerhonorscontainer.options: --init— a local Docker test can only confirm tini reaps zombies, not the runner integration. The first run of this PR'sitestjob is the real check.ProcessManagerTest."should cleanup process resources when process execution fails"is a known occasional timing flake under parallel load, independent of this change.🤖 Generated with Claude Code
d6148d62fc14cffbef08