Use host IP for e2e test API in CI
The act runner executes steps inside a container where localhost does not reach the Docker host. Use E2E_API_URL env var (set to the host IP 192.168.1.10:8100 in CI) so both the global setup and Vite proxy can reach the test API container. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
@@ -91,6 +91,8 @@ jobs:
|
|||||||
- name: Run e2e tests
|
- name: Run e2e tests
|
||||||
run: npm run test:e2e
|
run: npm run test:e2e
|
||||||
working-directory: frontend
|
working-directory: frontend
|
||||||
|
env:
|
||||||
|
E2E_API_URL: http://192.168.1.10:8100
|
||||||
- name: Upload Playwright report
|
- name: Upload Playwright report
|
||||||
if: failure()
|
if: failure()
|
||||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ import { dirname, resolve } from 'node:path'
|
|||||||
import { fileURLToPath } from 'node:url'
|
import { fileURLToPath } from 'node:url'
|
||||||
|
|
||||||
const __dirname = dirname(fileURLToPath(import.meta.url))
|
const __dirname = dirname(fileURLToPath(import.meta.url))
|
||||||
const API_BASE = 'http://localhost:8100/api/v1'
|
const API_HOST = process.env.E2E_API_URL || 'http://localhost:8100'
|
||||||
|
const API_BASE = `${API_HOST}/api/v1`
|
||||||
const COMPOSE_FILE = resolve(__dirname, '../../docker-compose.test.yml')
|
const COMPOSE_FILE = resolve(__dirname, '../../docker-compose.test.yml')
|
||||||
const COMPOSE = `docker compose -p nuzlocke-test -f ${COMPOSE_FILE}`
|
const COMPOSE = `docker compose -p nuzlocke-test -f ${COMPOSE_FILE}`
|
||||||
const FIXTURES_PATH = resolve(__dirname, '.fixtures.json')
|
const FIXTURES_PATH = resolve(__dirname, '.fixtures.json')
|
||||||
@@ -48,7 +49,7 @@ export default async function globalSetup() {
|
|||||||
|
|
||||||
// 2. Wait for API to be healthy
|
// 2. Wait for API to be healthy
|
||||||
console.log('[setup] Waiting for API to be ready...')
|
console.log('[setup] Waiting for API to be ready...')
|
||||||
await waitForApi('http://localhost:8100/')
|
await waitForApi(`${API_HOST}/`)
|
||||||
|
|
||||||
// 3. Run migrations
|
// 3. Run migrations
|
||||||
run(`${COMPOSE} exec -T test-api alembic -c /app/alembic.ini upgrade head`)
|
run(`${COMPOSE} exec -T test-api alembic -c /app/alembic.ini upgrade head`)
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ export default defineConfig({
|
|||||||
server: {
|
server: {
|
||||||
proxy: {
|
proxy: {
|
||||||
'/api': {
|
'/api': {
|
||||||
target: 'http://localhost:8000',
|
target: process.env.E2E_API_URL || 'http://localhost:8000',
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user