From b0d5afe08b5be5ad7a7ee93e64a197f29a3b924a Mon Sep 17 00:00:00 2001 From: rusconn Date: Sat, 14 Oct 2023 10:57:02 +0900 Subject: [PATCH] test: add github actions playwright workflow --- .github/workflows/playwright.yml | 33 ++++++++++++++++++++++++++++++++ .vscode/extensions.json | 3 ++- tests/app/page.spec.ts | 12 ++++++++---- 3 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/playwright.yml 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(); + }); +}