diff --git a/integration-test/docker-compose.yml b/integration-test/docker-compose.yml index 3d66cc7..325fe3a 100644 --- a/integration-test/docker-compose.yml +++ b/integration-test/docker-compose.yml @@ -1,5 +1,6 @@ services: vibe-app: + image: vibe-app-integration build: context: .. dockerfile: Dockerfile diff --git a/script/integration-test b/script/integration-test index a4af130..7d2adc4 100755 --- a/script/integration-test +++ b/script/integration-test @@ -50,10 +50,14 @@ trap teardown EXIT trap 'exit 130' INT trap 'exit 143' TERM -# Build vibe-app explicitly: `run --build integration-test` only builds the named service -# (not its dependencies), and integration-test is image-only, so compose hands bake an -# empty definition ("failed to find target default") and vibe-app never gets built or started. -"${compose[@]}" --ansi never --progress plain build vibe-app +# Build the app image with buildx directly instead of through compose: compose delegates +# builds to bake, which fails on the CI runner with "failed to find target default". The +# image name matches `image:` in docker-compose.yml, so `run` below finds it and never +# builds. DEPS_ALIASES must match build.args in docker-compose.coverage.yml. +docker buildx build --load \ + --build-arg "DEPS_ALIASES=run${COVERAGE:+:cov}" \ + -t vibe-app-integration \ + -f "$root/Dockerfile" "$root" # `run` returns the test container's own exit code; `up --abort-on-container-exit` can leak # the app's SIGTERM exit (143) during teardown instead.