contract job red on the forge: glab missing from CI image + mill show dashboard.assembly shape mismatch #407
Labels
No labels
agent-ready
bug
contract
documentation
duplicate
enhancement
good first issue
help wanted
invalid
needs-human
needs-input
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
iterative-works/iw-cli#407
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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
The nightly
contractjob (tool contract suite,test/contract/*.bats) is failing on the Forgejo runner — run #31 (schedule, 2026-07-13 03:17 UTC): 6 failing tests from two independent root causes, both environmental (the CI image), not the code under test.gh,git,scala-cli(4/4) pass;tmuxis skipped by design.Root cause 1 —
glabnot installed in the CI image (5 failures)glab(the GitLab CLI) isn't present inghcr.io/iterative-works/iw-cli-ci:latest. Thebinary on PATHguard fails and the other four cascade from the same missing binary (test/contract/glab_adapter_contract.bats).Fix: add
glabto theiw-cli-ciimage build, or gate the glab contract behind an env flag (astmuxalready is withIW_CONTRACT_TMUX) if glab coverage on the forge runner isn't wanted yet.Root cause 2 —
mill show dashboard.assemblyoutput isn't the expected JSON (1 failure)mill show dashboard.assemblyemitted output thatjqcan't parse as the expected JSON string (parse error at the first token). This is the contract suite doing its job — flagging that mill's output shape in this environment no longer matches the adapter's assumption (likely a mill-version/output difference in the container, orshowprinting something non-JSON alongside the value).Fix: capture what
mill show dashboard.assemblyactually prints in the CI image, then either pin/adjust the mill version iniw-cli-cior updatemill_contract.bats(and the adapter, if the real parsing depends on the same shape) to the current output.Notes
contract-label gated, so it does not block ordinary CI (compile/test/lint/format/dashboard-build are green on the forge).works.iterativedep (scalatags-webawesome:3.2.1.1) resolves from Maven Central.Intake: fixed by
94f2683aandcee05bd9Both root causes are fixed on
main:94f2683a("fix(ci): install glab in the CI image so the glab contract tests can run") addsglabto.github/Dockerfile.ci(lines 26-28) and to the final version check.mill show dashboard.assemblynot JSON):cee05bd9("fix(contract): pin mill show stdout, not stdout merged with stderr") makestest/contract/mill_contract.batsuserun --separate-stderr. On a cold build, yarn and vite log to stderr, andjqgot that log in place of the jar ref.Intake did not see a green nightly
contractrun after these commits. When the job is still red, reopen this issue.