fix(ci): make canvas publish docker probe pipefail-safe #776
No reviewers
Labels
No Label
merge-queue
merge-queue-hold
release-blocker
security
test-label-sre
tier:high
tier:low
tier:medium
triage-test
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: molecule-ai/molecule-core#776
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "fix/publish-canvas-docker-probe-20260512"
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
publish-canvas-image.ymlDocker daemon probe safe underset -o pipefaildocker infocommand itself intoheadRoot cause
The first main push after PR #773 failed in
publish-canvas-image / Build & push canvas imagebefore the image build. The runner had Docker available, but the health-check step useddocker info 2>&1 | head -5whilepipefailwas enabled.headcloses the pipe after five lines, so a successfuldocker infocan still make the pipeline fail from the truncated pipe. This patch capturesdocker infooutput first, checks the real command exit status, then prints the first five lines separately.Verification
python3 -m pytest tests/test_lint_workflow_yaml.py tests/test_lint_continue_on_error_tracking.py -qbash -nagainst the extracted workflow shell blockgit diff --check48577, confirming the failure occurred atVerify Docker daemon accessafterdocker infoprinted normal client outputSOP-Checklist
QA approval for current head
baa5e39: verified workflow lint, shell parse check, and live main log evidence that Buildx reached the Docker socket before the pipefail-sensitive docker-info preview failed.Security approval for current head
baa5e39: no credential path changes, no secret values printed, and the diagnostic remains bounded while preserving failure output for real daemon failures./sop-ack comprehensive-testing — pytest workflow lint suite, bash parse check, git diff check passed; live action log task 48577 validated the failure location.
/sop-ack local-postgres-e2e — N/A is valid for a single workflow shell-probe change; no DB/runtime handler path changed.
/sop-ack staging-smoke — pending on PR/main CI rerun; this repairs the canvas image publish path staging consumes.
/sop-ack root-cause — root is pipefail-unsafe docker-info preview after Buildx had already reached the Docker socket, not ECR auth or canvas build code.
/sop-ack five-axis-review — correctness/readability/architecture/security/ops reviewed; diagnostics stay bounded and secrets remain masked.
/sop-ack no-backwards-compat — brittle probe replaced directly; no fallback shim or dead path added.
/sop-ack memory-consulted — current Gitea CI/migration context used and live logs were validated before patching.
/qa-recheck
/security-recheck