From 89192713cd9c8f82262e3e75f4667ad1f89eaf33 Mon Sep 17 00:00:00 2001 From: fkatsuhiro Date: Wed, 4 Mar 2026 22:43:25 +0900 Subject: [PATCH 1/3] feat: docs e2e cli setting --- .github/workflows/ci.yml | 43 +++++++++++++++++++++++++++++++ e2e/docs-e2e/playwright.config.ts | 5 ++-- package.json | 1 + 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a95007c9927..25dbb1de2e5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -787,6 +787,47 @@ jobs: - name: CLI E2E Tests run: pnpm run test.e2e.cli + + ############ E2E DOCS TEST ############ + test-docs-e2e: + name: E2E Docs Tests + # ドキュメントに変更があった、または手動実行の場合 + if: always() && needs.changes.outputs.build-docs == 'true' + needs: + - build-other-packages + - build-docs + - changes + - test-unit + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v5 + - uses: pnpm/action-setup@v4 + - name: Setup Node + uses: actions/setup-node@v5 + with: + node-version: 24.x + cache: 'pnpm' + + - name: Download Build Artifacts + uses: actions/download-artifact@v4 + + - name: Move Distribution Artifacts + run: | + mv artifact-qwik/* packages/qwik/ + mkdir -p packages/qwik-city/lib/ + mv artifact-qwikcity/* packages/qwik-city/lib/ + # ドキュメントのビルド済みファイルを配置(Preview実行に必要) + mkdir -p packages/docs/dist + mv artifact-docs/* packages/docs/dist/ + + - run: pnpm install --frozen-lockfile + + - name: Install Playwright + run: npx playwright install chromium --with-deps + + - name: Docs E2E Tests + run: pnpm run test.e2e.docs ########### LINT PACKAGES ############ lint-package: @@ -956,6 +997,7 @@ jobs: - test-unit - test-e2e - test-cli-e2e + - test-docs-e2e - lint-package - build-docs - build-insights @@ -967,6 +1009,7 @@ jobs: (needs.test-unit.result == 'success' || needs.test-unit.result == 'skipped') && (needs.test-e2e.result == 'success' || needs.test-e2e.result == 'skipped') && (needs.test-cli-e2e.result == 'success' || needs.test-cli-e2e.result == 'skipped') && + (needs.test-docs-e2e.result == 'success' || needs.test-docs-e2e.result == 'skipped') && (needs.lint-package.result == 'success' || needs.lint-package.result == 'skipped') && (needs.build-docs.result == 'success' || needs.build-docs.result == 'skipped') && (needs.build-insights.result == 'success' || needs.build-insights.result == 'skipped') diff --git a/e2e/docs-e2e/playwright.config.ts b/e2e/docs-e2e/playwright.config.ts index 00508803c5f..5b2a7551513 100644 --- a/e2e/docs-e2e/playwright.config.ts +++ b/e2e/docs-e2e/playwright.config.ts @@ -7,7 +7,8 @@ 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'; +const TestingURL = process.env.CI ? 'http://127.0.0.1:4173' : 'http://127.0.0.1:3000'; export default defineConfig({ testDir: './tests', @@ -78,7 +79,7 @@ export default defineConfig({ /* Run your local dev server before starting the tests */ webServer: { - command: 'pnpm -C ../../ run docs.dev', + command: process.env.CI ? 'pnpm -C ../../ run docs.preview' : 'pnpm -C ../../ run docs.dev', url: TestingURL, reuseExistingServer: !process.env.CI, }, 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", From 6ce6b72935f013d2631fe20de57efa14a837b89b Mon Sep 17 00:00:00 2001 From: fkatsuhiro Date: Sat, 7 Mar 2026 20:38:30 +0900 Subject: [PATCH 2/3] fix: cli build and test process --- .github/workflows/ci.yml | 58 ++++++++++--------------------- e2e/docs-e2e/playwright.config.ts | 11 +++--- 2 files changed, 25 insertions(+), 44 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 25dbb1de2e5..3fe7fca963d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -560,7 +560,8 @@ jobs: ############ BUILD DOCS ############ build-docs: - if: always() && needs.changes.outputs.build-docs == 'true' + #if: always() && needs.changes.outputs.build-docs == 'true' + if: always() && (needs.changes.outputs.build-docs == 'true' || github.event_name == 'pull_request') name: Build Docs needs: - changes @@ -742,10 +743,11 @@ jobs: ############ E2E CLI TEST ############ test-cli-e2e: name: E2E CLI Tests - if: always() && needs.changes.outputs.build-cli-e2e == 'true' + if: always() && (needs.changes.outputs.build-cli-e2e == 'true' || needs.changes.outputs.build-docs == 'true') needs: - build-other-packages + - build-docs - changes - test-unit @@ -774,6 +776,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,51 +785,28 @@ 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 - - ############ E2E DOCS TEST ############ - test-docs-e2e: - name: E2E Docs Tests - # ドキュメントに変更があった、または手動実行の場合 - if: always() && needs.changes.outputs.build-docs == 'true' - needs: - - build-other-packages - - build-docs - - changes - - test-unit - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v5 - - uses: pnpm/action-setup@v4 - - name: Setup Node - uses: actions/setup-node@v5 - with: - node-version: 24.x - cache: 'pnpm' - - - name: Download Build Artifacts - uses: actions/download-artifact@v4 - - name: Move Distribution Artifacts - run: | - mv artifact-qwik/* packages/qwik/ - mkdir -p packages/qwik-city/lib/ - mv artifact-qwikcity/* packages/qwik-city/lib/ - # ドキュメントのビルド済みファイルを配置(Preview実行に必要) - mkdir -p packages/docs/dist - mv artifact-docs/* packages/docs/dist/ - - - run: pnpm install --frozen-lockfile - - - name: Install Playwright + - 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 ############ @@ -997,7 +977,6 @@ jobs: - test-unit - test-e2e - test-cli-e2e - - test-docs-e2e - lint-package - build-docs - build-insights @@ -1009,7 +988,6 @@ jobs: (needs.test-unit.result == 'success' || needs.test-unit.result == 'skipped') && (needs.test-e2e.result == 'success' || needs.test-e2e.result == 'skipped') && (needs.test-cli-e2e.result == 'success' || needs.test-cli-e2e.result == 'skipped') && - (needs.test-docs-e2e.result == 'success' || needs.test-docs-e2e.result == 'skipped') && (needs.lint-package.result == 'success' || needs.lint-package.result == 'skipped') && (needs.build-docs.result == 'success' || needs.build-docs.result == 'skipped') && (needs.build-insights.result == 'success' || needs.build-insights.result == 'skipped') diff --git a/e2e/docs-e2e/playwright.config.ts b/e2e/docs-e2e/playwright.config.ts index 5b2a7551513..f2bf0aa58d1 100644 --- a/e2e/docs-e2e/playwright.config.ts +++ b/e2e/docs-e2e/playwright.config.ts @@ -8,7 +8,6 @@ import { defineConfig, devices } from '@playwright/test'; /** See https://playwright.dev/docs/test-configuration. */ //const TestingURL = 'http://127.0.0.1:3000'; -const TestingURL = process.env.CI ? 'http://127.0.0.1:4173' : 'http://127.0.0.1:3000'; export default defineConfig({ testDir: './tests', @@ -28,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 */ @@ -79,8 +78,12 @@ export default defineConfig({ /* Run your local dev server before starting the tests */ webServer: { - command: process.env.CI ? 'pnpm -C ../../ run docs.preview' : '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, }, }); From c9a66813bf9630562c64ddbfe715fe04c3a71fb0 Mon Sep 17 00:00:00 2001 From: fkatsuhiro Date: Sun, 8 Mar 2026 00:18:40 +0900 Subject: [PATCH 3/3] fix: test triger of docs-e2e --- .github/workflows/ci.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3fe7fca963d..c32cfe0aac7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -560,9 +560,8 @@ jobs: ############ BUILD DOCS ############ build-docs: - #if: always() && needs.changes.outputs.build-docs == 'true' - if: always() && (needs.changes.outputs.build-docs == 'true' || github.event_name == 'pull_request') - name: Build Docs + if: always() && needs.changes.outputs.build-docs == 'true' + name: Build Docs needs: - changes - build-other-packages @@ -743,7 +742,7 @@ jobs: ############ E2E CLI TEST ############ test-cli-e2e: name: E2E CLI Tests - if: always() && (needs.changes.outputs.build-cli-e2e == 'true' || needs.changes.outputs.build-docs == 'true') + if: always() && needs.changes.outputs.build-cli-e2e == 'true' needs: - build-other-packages