feat!: fumadocs example, mark clientReferenceDedup experimental #1772
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| workflow_call: # allow other workflows to run CI as a gate | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ci-${{ github.event_name }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| check: | |
| name: Check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: voidzero-dev/setup-vp@v1 | |
| - name: Build plugin (needed for benchmark workspace type resolution) | |
| run: vp run build | |
| - run: vp run check | |
| test: | |
| name: Vitest | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: voidzero-dev/setup-vp@v1 | |
| - name: Build plugin (needed by ecosystem fixtures) | |
| run: vp run build | |
| - run: vp run test | |
| create-next-app: | |
| name: create-next-app (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: voidzero-dev/setup-vp@v1 | |
| - name: Build plugin | |
| run: vp run build | |
| - name: Pack vinext for local install | |
| run: vp pm pack --pack-destination "${{ runner.temp }}" | |
| working-directory: packages/vinext | |
| - name: Scaffold a fresh create-next-app project | |
| run: vp dlx create-next-app@latest "${{ runner.temp }}/cna-test" --yes | |
| - name: Install vinext from local tarball | |
| working-directory: ${{ runner.temp }}/cna-test | |
| shell: bash | |
| run: vp add "${{ runner.temp }}"/vinext-*.tgz | |
| - name: Run vinext init | |
| working-directory: ${{ runner.temp }}/cna-test | |
| run: vp exec vinext init --skip-check | |
| - name: Start dev server and verify HTTP 200 | |
| working-directory: ${{ runner.temp }}/cna-test | |
| shell: bash | |
| run: | | |
| vp exec vite dev --port 3099 & | |
| SERVER_PID=$! | |
| for i in $(seq 1 30); do | |
| STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:3099/ || true) | |
| if [ "$STATUS" = "200" ]; then | |
| echo "Server responded with HTTP 200 (attempt $i)" | |
| kill "$SERVER_PID" 2>/dev/null || true | |
| exit 0 | |
| fi | |
| sleep 1 | |
| done | |
| echo "Server did not respond with HTTP 200 within 30 seconds" | |
| kill "$SERVER_PID" 2>/dev/null || true | |
| exit 1 | |
| e2e: | |
| name: E2E (${{ matrix.project }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| project: | |
| - pages-router | |
| - app-router | |
| - cloudflare-pages-router | |
| - pages-router-prod | |
| - cloudflare-workers | |
| - cloudflare-dev | |
| - cloudflare-pages-router-dev | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: voidzero-dev/setup-vp@v1 | |
| - name: Build plugin | |
| run: vp run build | |
| - name: Cache Playwright browsers | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/ms-playwright | |
| key: playwright-chromium-${{ runner.os }}-${{ hashFiles('**/package.json') }} | |
| - run: vp exec playwright install chromium | |
| - run: vp run test:e2e | |
| env: | |
| CI: true | |
| PLAYWRIGHT_PROJECT: ${{ matrix.project }} | |
| - uses: actions/upload-artifact@v4 | |
| if: failure() | |
| with: | |
| name: playwright-report-${{ matrix.project }} | |
| path: playwright-report/ | |
| retention-days: 7 |