diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml new file mode 100644 index 0000000..8de42d0 --- /dev/null +++ b/.github/workflows/playwright.yml @@ -0,0 +1,33 @@ +name: Playwright Tests +on: + push: + branches: [main] + pull_request: + branches: [main] + workflow_dispatch: +jobs: + test: + timeout-minutes: 10 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 18 + - uses: pnpm/action-setup@v2 + with: + version: 8 + - name: Install dependencies + run: pnpm install --frozen-lockfile + - name: Build app + run: pnpm build + - name: Install Playwright Browsers + run: pnpm exec playwright install --with-deps + - name: Run Playwright tests + run: pnpm exec playwright test + - uses: actions/upload-artifact@v3 + if: always() + with: + name: playwright-report + path: playwright-report/ + retention-days: 30 diff --git a/.vscode/extensions.json b/.vscode/extensions.json index f221475..b649a5d 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -6,6 +6,7 @@ "dbaeumer.vscode-eslint", "esbenp.prettier-vscode", "bradlc.vscode-tailwindcss", - "ms-playwright.playwright" + "ms-playwright.playwright", + "github.vscode-github-actions" ] } diff --git a/tests/app/page.spec.ts b/tests/app/page.spec.ts index 5934f11..61a9c5b 100644 --- a/tests/app/page.spec.ts +++ b/tests/app/page.spec.ts @@ -1,6 +1,10 @@ import { expect, test } from "@playwright/test"; -test("VRT", async ({ page }) => { - await page.goto("/"); - await expect(page).toHaveScreenshot(); -}); +// avoid VRT on CI because of difference between CI and local test env +// we can do VRT on CI if dockerize local test env +if (!process.env.CI) { + test("VRT", async ({ page }) => { + await page.goto("/"); + await expect(page).toHaveScreenshot(); + }); +}