Skip to content

build: add podman compatibility for local dev and CI#675

Draft
nicolasburtey wants to merge 1 commit intomainfrom
build/podman-compatibility
Draft

build: add podman compatibility for local dev and CI#675
nicolasburtey wants to merge 1 commit intomainfrom
build/podman-compatibility

Conversation

@nicolasburtey
Copy link
Copy Markdown
Member

@nicolasburtey nicolasburtey commented Feb 22, 2026

Summary

  • Add dev/bin/podman-get-socket.sh — detects correct podman socket (macOS SSH vs Linux unix)
  • Add dev/bin/podman-service-start.sh — starts podman service on Linux with socket setup
  • Add podman-service-start Makefile target
  • Update CI workflows (integration, e2e, perf-report) to set ENGINE_DEFAULT=podman

Matches the podman compatibility pattern used in lana-bank.

Local setup

Add to your .env (loaded automatically via direnv dotenv):

ENGINE_DEFAULT=podman

Test plan

  • ENGINE_DEFAULT=podman make start-deps setup-db works locally
  • CI passes with podman

🤖 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 with ENGINE_DEFAULT=podman, and integration CI additionally starts a Podman service before bringing up dependencies.

Adds a podman-service-start Make target plus new dev/bin/podman-service-start.sh and dev/bin/podman-get-socket.sh helpers 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.

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>
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)

Fix in Cursor Fix in Web

else
# Default fallback (will likely fail, but provides a reasonable default)
echo "unix://$SYSTEM_SOCKET"
fi
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Fix in Cursor Fix in Web

- uses: actions/checkout@v3
- name: Run e2e tests
env:
ENGINE_DEFAULT: podman
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Additional Locations (1)

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant