Skip to content

fix: pass explicit docker runtime in acceptance tests#1160

Merged
zeitlinger merged 3 commits intomainfrom
fix/acceptance-test-runtime
Mar 13, 2026
Merged

fix: pass explicit docker runtime in acceptance tests#1160
zeitlinger merged 3 commits intomainfrom
fix/acceptance-test-runtime

Conversation

@zeitlinger
Copy link
Member

Summary

  • Adds optional second argument to build-lgtm.sh for explicit runtime override (e.g. ./build-lgtm.sh latest docker)
  • Acceptance tests now pass docker explicitly, because oats hardcodes docker compose to orchestrate services

Problem

On CI runners (Ubuntu 24.04) where both Docker and Podman are installed, if build-lgtm.sh uses Podman but oats runs docker compose, the built image is invisible to Docker — causing acceptance test timeouts (connection refused).

This is currently not an issue on main (Docker-first preference), but becomes one when #1158 lands (Podman-first preference). This PR makes the acceptance tests resilient regardless of the default preference order.

Test plan

  • CI acceptance tests pass on this branch
  • ./build-lgtm.sh latest still auto-detects (no regression)
  • ./build-lgtm.sh latest docker forces Docker
  • ./build-lgtm.sh latest podman forces Podman

oats hardcodes `docker compose` to run services, so the build step
must also use Docker. Without this, CI runners with both Podman and
Docker installed may build with Podman, but the image is invisible to
Docker's compose — causing acceptance test timeouts.

Adds an optional second argument to build-lgtm.sh for runtime override.
Copilot AI review requested due to automatic review settings March 13, 2026 15:53
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR makes acceptance tests resilient on systems where both Docker and Podman are installed by allowing the LGTM build script to explicitly select the container runtime, and then forcing Docker for acceptance tests (since oats orchestrates via docker compose).

Changes:

  • Add an optional runtime override argument to build-lgtm.sh.
  • Force Docker in the acceptance test task by passing docker explicitly to the build step.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
build-lgtm.sh Adds a second optional argument to override runtime selection logic.
.mise/tasks/acceptance-tests.sh Forces Docker for the LGTM image build used by oats.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Rename RUNTIME_OVERRIDE → CONTAINER_RUNTIME_OVERRIDE
- Validate override against docker|podman allowlist
- Quote "$RUNTIME" invocation to prevent word-splitting
- Call ./build-lgtm.sh directly instead of mise task (which
  only accepts one positional arg)
Copilot AI review requested due to automatic review settings March 13, 2026 16:14
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR makes acceptance tests resilient on CI runners where both Docker and Podman are installed by allowing build-lgtm.sh to explicitly select a container runtime, then forcing Docker for acceptance tests since oats uses docker compose.

Changes:

  • Added an optional container runtime override argument (docker/podman) to build-lgtm.sh.
  • Updated acceptance tests to force building the image with Docker.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
build-lgtm.sh Adds an explicit runtime override to ensure the image is built with the runtime expected by downstream tooling.
.mise/tasks/acceptance-tests.sh Forces Docker for acceptance tests to match oats’ Docker Compose orchestration behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@zeitlinger zeitlinger merged commit 3b5cacd into main Mar 13, 2026
20 checks passed
@zeitlinger zeitlinger deleted the fix/acceptance-test-runtime branch March 13, 2026 17:05
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.

3 participants