fix(black-box): prefer runner Docker over installing Podman on GHA - #33
Conversation
Stop installing Podman so service_healthy can rely on dockerd healthchecks. Podman user timers often never fire on GHA. Assisted-By: Claude (Anthropic) Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
PR Summary by QodoFix black-box GHA hangs by preferring runner Docker engine over Podman
AI Description
Diagram
High-Level Assessment
Files changed (1)
|
Code Review by Qodo
1. Podman fallback unprepared
|
| if command -v docker >/dev/null 2>&1; then | ||
| engine=docker | ||
| elif command -v podman >/dev/null 2>&1; then | ||
| engine=podman |
There was a problem hiding this comment.
1. Podman fallback unprepared 🐞 Bug ☼ Reliability
The workflow can fall back to Podman when Docker is missing, but it no longer sets up a Podman-capable runtime environment before later steps use $CONTAINER_ENGINE, so Podman-only runners can fail when pulling images or collecting diagnostics. Additionally, the diagnostics step defaults to docker when CONTAINER_ENGINE is unset, which can yield misleading or empty output in non-Docker environments.
Agent Prompt
## Issue description
The workflow contains a Podman fallback path, but it no longer performs the necessary Podman preparation/validation before subsequent steps invoke the selected container engine (e.g., pulls and diagnostics). Separately, the diagnostics step silently defaults to `docker` when `CONTAINER_ENGINE` is unset, which can produce misleading/empty diagnostics on non-Docker runners.
## Issue Context
This reusable workflow runs on `ubuntu-latest` and includes engine-detection logic that can select Podman when Docker is missing. If the Podman branch is kept, the workflow should either ensure Podman works equivalently to the Docker path (including any required setup/validation) or fail fast with a clear error; diagnostics should not independently default to Docker when the engine is unknown, and should instead reuse detection or require a previously-determined engine.
## Fix Focus Areas
- .github/workflows/black-box.yaml[42-66]
- .github/workflows/black-box.yaml[74-99]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
chadcrum
left a comment
There was a problem hiding this comment.
Good temp workaround, thanks!
Summary
Black-box jobs were hanging on
compose upwithdepends_on: service_healthy.Containers stayed
startingwithLog: nulluntil the 25m timeout.Podman runs healthchecks via systemd user timers. On GitHub Actions those often never fire, even after PR #32.
Docker's daemon runs healthchecks itself.
This PR stops installing Podman in the workflow and uses the runner engine (prefer Docker).
Pull and diagnostics follow
CONTAINER_ENGINE.Podman Upstream related issues
Fixes
dcm-project/control-plane#37