diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 47a81c4..370b74d 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -29,6 +29,14 @@ jobs: run: | npx prisma generate + - name: Build Next app + env: + # 빌드 시에도 Prisma Client 가 필요하므로 더미 DATABASE_URL 을 사용한다. + DATABASE_URL: postgresql://example:example@localhost:5432/example + PRISMA_ENGINES_CHECKSUM_IGNORE_MISSING: "1" + run: | + npm run build + - name: Run unit tests if: github.event_name == 'push' env: diff --git a/package.json b/package.json index 5b4aa7b..31b433b 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "dev": "next dev", "build": "next build", "start": "next start", + "start:e2e": "next start -p 3000", "lint": "next lint", "test": "vitest run", "e2e": "playwright test" diff --git a/playwright.config.ts b/playwright.config.ts index f9235c7..64ac299 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -1,5 +1,7 @@ import { defineConfig, devices } from "@playwright/test"; +const isCI = !!process.env.CI; + export default defineConfig({ testDir: "./tests/e2e", timeout: 30_000, @@ -17,9 +19,11 @@ export default defineConfig({ }, ], webServer: { - command: "npm run dev", + // CI 에서는 프로덕션 빌드 서버(next start)를 대상으로 E2E 를 수행해 + // dev 모드의 느린 HMR/StrictMode 2회 렌더로 인한 flakiness 를 줄인다. + command: isCI ? "npm run start:e2e" : "npm run dev", url: "http://localhost:3000", - reuseExistingServer: !process.env.CI, + reuseExistingServer: !isCI, timeout: 120_000, }, }); diff --git a/uploads/268f2133-6f72-44a5-ab84-729fdd8887fe b/uploads/268f2133-6f72-44a5-ab84-729fdd8887fe new file mode 100644 index 0000000..b9954d9 --- /dev/null +++ b/uploads/268f2133-6f72-44a5-ab84-729fdd8887fe @@ -0,0 +1 @@ +PNG TEST FIXTURE diff --git a/uploads/59618a73-4686-44da-86a3-44cbd8ff5fc8 b/uploads/59618a73-4686-44da-86a3-44cbd8ff5fc8 new file mode 100644 index 0000000..b9954d9 --- /dev/null +++ b/uploads/59618a73-4686-44da-86a3-44cbd8ff5fc8 @@ -0,0 +1 @@ +PNG TEST FIXTURE diff --git a/uploads/6a17dd96-2e73-439e-9524-789c522dad07 b/uploads/6a17dd96-2e73-439e-9524-789c522dad07 new file mode 100644 index 0000000..b9954d9 --- /dev/null +++ b/uploads/6a17dd96-2e73-439e-9524-789c522dad07 @@ -0,0 +1 @@ +PNG TEST FIXTURE diff --git a/uploads/b2c93be7-3970-411d-96a1-e481f51d9c18 b/uploads/b2c93be7-3970-411d-96a1-e481f51d9c18 new file mode 100644 index 0000000..b9954d9 --- /dev/null +++ b/uploads/b2c93be7-3970-411d-96a1-e481f51d9c18 @@ -0,0 +1 @@ +PNG TEST FIXTURE diff --git a/uploads/d761f0a1-b02a-4fd3-b510-6b50528e2050 b/uploads/d761f0a1-b02a-4fd3-b510-6b50528e2050 new file mode 100644 index 0000000..b9954d9 --- /dev/null +++ b/uploads/d761f0a1-b02a-4fd3-b510-6b50528e2050 @@ -0,0 +1 @@ +PNG TEST FIXTURE