What was checked
Run: https://github.com/yubi-OS/yubiOS/actions/runs/29152466267
Original failed job: https://github.com/yubi-OS/yubiOS/actions/runs/29152466267/job/86545643408
Rerun job: https://github.com/yubi-OS/yubiOS/actions/runs/29152466267/job/86546874621
Workflow: .github/workflows/ci_test-int.yml
Stage: Stage 4 — Publish firmware bundle (0mniteck/yubios:firmware)
Result
The requested Stage 4 rerun was triggered. It reproduced the same failure in step 3, Install docker-engine + buildx (pinned, private dockerd on ducker.sock).
All preceding artifact stages in the latest attempt were green, including Stage 1, Stage 2, and Stage 3/QEMU. Stage 4 stops before assembling or pushing the firmware bundle.
Failure signature
The static Docker daemon exits immediately because GitHub's hosted runner already has /var/run/docker.pid for another Docker process:
failed to start daemon, ensure docker is not running or delete /var/run/docker.pid: process with PID 1353 is still running
ERROR: failed to initialize builder hardened (hardened0): failed to connect to the docker API at unix:///var/run/ducker.sock: no such file or directory
Likely cause
The workflow starts a private dockerd on /var/run/ducker.sock, but it does not set a private --pidfile. Docker still checks the default /var/run/docker.pid, sees the hosted runner's daemon, and exits before creating /var/run/ducker.sock.
Recommended fix
Update the Stage 4 dockerd invocation in .github/workflows/ci_test-int.yml on main to use an isolated PID file, for example:
--pidfile "${RUNNER_TEMP}/ducker.pid" \
Place it alongside the existing private socket/data-root options. It would also be useful to make the wait loop fail explicitly if the socket never becomes ready before buildx create runs.
Notes
I attempted to prepare the CI edit from this environment, but direct raw/git checkout access from the container is blocked by HTTP 403 and the available connector write helper requires a full-file replacement for workflow edits. I did not make a partial or risky workflow rewrite.
Related TODO/FUTURE follow-up opened separately as one item per PR and not merged: #69.
What was checked
Run: https://github.com/yubi-OS/yubiOS/actions/runs/29152466267
Original failed job: https://github.com/yubi-OS/yubiOS/actions/runs/29152466267/job/86545643408
Rerun job: https://github.com/yubi-OS/yubiOS/actions/runs/29152466267/job/86546874621
Workflow:
.github/workflows/ci_test-int.ymlStage:
Stage 4 — Publish firmware bundle (0mniteck/yubios:firmware)Result
The requested Stage 4 rerun was triggered. It reproduced the same failure in step 3,
Install docker-engine + buildx (pinned, private dockerd on ducker.sock).All preceding artifact stages in the latest attempt were green, including Stage 1, Stage 2, and Stage 3/QEMU. Stage 4 stops before assembling or pushing the firmware bundle.
Failure signature
The static Docker daemon exits immediately because GitHub's hosted runner already has
/var/run/docker.pidfor another Docker process:Likely cause
The workflow starts a private
dockerdon/var/run/ducker.sock, but it does not set a private--pidfile. Docker still checks the default/var/run/docker.pid, sees the hosted runner's daemon, and exits before creating/var/run/ducker.sock.Recommended fix
Update the Stage 4
dockerdinvocation in.github/workflows/ci_test-int.ymlonmainto use an isolated PID file, for example:--pidfile "${RUNNER_TEMP}/ducker.pid" \Place it alongside the existing private socket/data-root options. It would also be useful to make the wait loop fail explicitly if the socket never becomes ready before
buildx createruns.Notes
I attempted to prepare the CI edit from this environment, but direct raw/git checkout access from the container is blocked by HTTP 403 and the available connector write helper requires a full-file replacement for workflow edits. I did not make a partial or risky workflow rewrite.
Related TODO/FUTURE follow-up opened separately as one item per PR and not merged: #69.