build: add podman compatibility for local dev and CI#675
build: add podman compatibility for local dev and CI#675nicolasburtey wants to merge 1 commit intomainfrom
Conversation
Add podman utility scripts (podman-get-socket.sh, podman-service-start.sh) and Makefile target, matching the pattern used in lana-bank. Update CI workflows to set ENGINE_DEFAULT=podman. Dev scripts already support ENGINE_DEFAULT; developers can add ENGINE_DEFAULT=podman to their .env (loaded via direnv dotenv). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 3 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
| fi | ||
| echo "Waiting... ($i/5)" | ||
| sleep 2 | ||
| done |
There was a problem hiding this comment.
Socket wait loop silently succeeds on failure
High Severity
The wait loop tries 5 times to verify the socket is ready, but if all attempts fail, execution falls through and the script prints "Podman service ready" on the final line. With set -e active, the if condition doesn't trigger an exit on failure, so the script always reports success. This masks a failed podman service start and causes confusing downstream errors in CI.
Additional Locations (1)
| else | ||
| # Default fallback (will likely fail, but provides a reasonable default) | ||
| echo "unix://$SYSTEM_SOCKET" | ||
| fi |
There was a problem hiding this comment.
New script podman-get-socket.sh is never used
Low Severity
podman-get-socket.sh is added in this PR but is not referenced by any other file — not in the Makefile, not in CI workflows, and not in podman-service-start.sh. Grepping the entire codebase for podman-get-socket yields zero results. This is dead code that adds maintenance burden without providing any value.
| - uses: actions/checkout@v3 | ||
| - name: Run e2e tests | ||
| env: | ||
| ENGINE_DEFAULT: podman |
There was a problem hiding this comment.
CI workflows missing podman service start step
Medium Severity
Both bats.yml and perf-report.yml set ENGINE_DEFAULT: podman but don't call podman-service-start before running their commands. The test-integration.yml workflow correctly adds make podman-service-start before start-deps, suggesting it's required for podman to function on CI. Without it, the podman socket and container configuration (policy, registries, hosts entry) won't be set up, likely causing container operations to fail.


Summary
dev/bin/podman-get-socket.sh— detects correct podman socket (macOS SSH vs Linux unix)dev/bin/podman-service-start.sh— starts podman service on Linux with socket setuppodman-service-startMakefile targetENGINE_DEFAULT=podmanMatches the podman compatibility pattern used in lana-bank.
Local setup
Add to your
.env(loaded automatically via direnvdotenv):Test plan
ENGINE_DEFAULT=podman make start-deps setup-dbworks locally🤖 Generated with Claude Code
Note
Medium Risk
Changes the container engine and startup path used by CI and local dependency orchestration; failures are likely to manifest as CI infra/test flakiness rather than product/runtime behavior.
Overview
CI jobs for e2e (
bats.yml), integration (test-integration.yml), and perf report (perf-report.yml) now run withENGINE_DEFAULT=podman, and integration CI additionally starts a Podman service before bringing up dependencies.Adds a
podman-service-startMake target plus newdev/bin/podman-service-start.shanddev/bin/podman-get-socket.shhelpers to configure Linux Podman defaults and ensure a working Podman socket (with macOS SSH-connection detection).Written by Cursor Bugbot for commit 7376094. This will update automatically on new commits. Configure here.