diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a95007c9927..c32cfe0aac7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -561,7 +561,7 @@ jobs: ############ BUILD DOCS ############ build-docs: if: always() && needs.changes.outputs.build-docs == 'true' - name: Build Docs + name: Build Docs needs: - changes - build-other-packages @@ -746,6 +746,7 @@ jobs: needs: - build-other-packages + - build-docs - changes - test-unit @@ -774,6 +775,7 @@ jobs: uses: actions/download-artifact@v4 - name: Move Distribution Artifacts + shell: bash run: | mv artifact-qwik/* packages/qwik/ mkdir -p packages/qwik-city/lib/ @@ -782,12 +784,30 @@ jobs: mv artifact-create-qwik/* packages/create-qwik/dist/ mkdir -p packages/eslint-plugin-qwik/dist/ mv artifact-eslint-plugin-qwik/* packages/eslint-plugin-qwik/dist/ + mkdir -p packages/docs/dist + cp -R artifact-docs/. packages/docs/dist/ + mkdir -p packages/qwik-labs/lib packages/qwik-labs/vite + cp -R artifact-qwiklabs/lib/. packages/qwik-labs/lib/ + cp -R artifact-qwiklabs/vite/. packages/qwik-labs/vite/ + cp artifact-qwiklabs/package.json packages/qwik-labs/package.json + mkdir -p packages/qwik-react/lib + cp -R artifact-qwikreact/lib/. packages/qwik-react/lib/ + cp artifact-qwikreact/package.json packages/qwik-react/package.json - run: pnpm install --frozen-lockfile - name: CLI E2E Tests + if: needs.changes.outputs.build-cli-e2e == 'true' run: pnpm run test.e2e.cli + - name: Install Playwright (Docs) + if: needs.changes.outputs.build-docs == 'true' + run: npx playwright install chromium --with-deps + + - name: Docs E2E Tests + if: needs.changes.outputs.build-docs == 'true' + run: pnpm run test.e2e.docs + ########### LINT PACKAGES ############ lint-package: name: Lint Package diff --git a/e2e/docs-e2e/playwright.config.ts b/e2e/docs-e2e/playwright.config.ts index 00508803c5f..f2bf0aa58d1 100644 --- a/e2e/docs-e2e/playwright.config.ts +++ b/e2e/docs-e2e/playwright.config.ts @@ -7,7 +7,7 @@ import { defineConfig, devices } from '@playwright/test'; /** See https://playwright.dev/docs/test-configuration. */ -const TestingURL = 'http://127.0.0.1:3000'; +//const TestingURL = 'http://127.0.0.1:3000'; export default defineConfig({ testDir: './tests', @@ -27,7 +27,7 @@ export default defineConfig({ /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ use: { /* Base URL to use in actions like `await page.goto('/')`. */ - baseURL: TestingURL, + baseURL: 'http://localhost:3000', actionTimeout: 30_000, navigationTimeout: 60_000, /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ @@ -78,8 +78,12 @@ export default defineConfig({ /* Run your local dev server before starting the tests */ webServer: { - command: 'pnpm -C ../../ run docs.dev', - url: TestingURL, + command: process.env.CI + ? 'npx vite preview ../../packages/docs/dist --port 3000' + : 'pnpm -C ../../ run docs.dev', + port: 3000, + stdout: 'pipe', reuseExistingServer: !process.env.CI, + timeout: process.env.CI ? 120000 : 30000, }, }); diff --git a/package.json b/package.json index 70fa69955b9..700d99e8d92 100644 --- a/package.json +++ b/package.json @@ -240,6 +240,7 @@ "test.e2e.chromium.debug": "PWDEBUG=1 playwright test starters --browser=chromium --config starters/playwright.config.ts", "test.e2e.city": "playwright test starters/e2e/qwikcity --browser=chromium --config starters/playwright.config.ts", "test.e2e.cli": "pnpm --filter qwik-cli-e2e e2e", + "test.e2e.docs": "pnpm --filter docs-e2e test", "test.e2e.firefox": "playwright test starters --browser=firefox --config starters/playwright.config.ts", "test.e2e.integrations.chromium": "playwright test e2e/adapters-e2e/tests --project=chromium --config e2e/adapters-e2e/playwright.config.ts", "test.e2e.integrations.webkit": "playwright test e2e/adapters-e2e/tests --project=webkit --config e2e/adapters-e2e/playwright.config.ts",