fix(deps): update starter-peer-deps #330
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: Playground E2E Tests | |
| on: | |
| push: | |
| branches: | |
| - main | |
| paths-ignore: | |
| - "docs/**" | |
| - ".notes/**" | |
| - "*.md" | |
| - "src/**/*.test.*" | |
| pull_request: | |
| branches: | |
| - main | |
| paths-ignore: | |
| - "docs/**" | |
| - ".notes/**" | |
| - "*.md" | |
| - "src/**/*.test.*" | |
| workflow_dispatch: | |
| inputs: | |
| os: | |
| description: "OS to run on (e.g., ubuntu-latest, macos-latest)" | |
| required: true | |
| type: choice | |
| default: "all" | |
| options: | |
| - all | |
| - ubuntu-latest | |
| - macos-latest | |
| package-manager: | |
| description: "Package manager to use (e.g., pnpm, npm)" | |
| required: true | |
| type: choice | |
| default: "all" | |
| options: | |
| - all | |
| - pnpm | |
| - npm | |
| - yarn | |
| # todo(justinvdm, 25 Sep 2025): Re-enable yarn-classic once E2E tests are fixed | |
| # - yarn-classic | |
| workflow_call: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| env: | |
| CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
| CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
| jobs: | |
| setup-matrix: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| matrix: ${{ steps.set-matrix.outputs.matrix }} | |
| steps: | |
| - id: set-matrix | |
| run: | | |
| if [ "${{ github.event_name }}" == "pull_request" ] || [ "${{ github.event_name }}" == "push" ]; then | |
| echo 'matrix={"include":[{"os":"ubuntu-latest","package-manager":"npm"}]}' >> $GITHUB_OUTPUT | |
| elif [ "${{ github.event_name }}" == "workflow_dispatch" ]; then | |
| OS_INPUT=${{ github.event.inputs.os }} | |
| PM_INPUT=${{ github.event.inputs.package-manager }} | |
| [ "$OS_INPUT" == "all" ] && OS_LIST='ubuntu-latest macos-latest' || OS_LIST=$OS_INPUT | |
| # todo(justinvdm, 25 Sep 2025): Re-enable yarn-classic once E2E tests are fixed | |
| [ "$PM_INPUT" == "all" ] && PM_LIST='pnpm npm yarn' || PM_LIST=$PM_INPUT | |
| JSON_ARRAY="[]" | |
| for o in $OS_LIST; do | |
| for p in $PM_LIST; do | |
| JSON_ARRAY=$(echo "$JSON_ARRAY" | jq ". + [{\"os\":\"$o\",\"package-manager\":\"$p\"}]") | |
| done | |
| done | |
| echo "matrix={\"include\":${JSON_ARRAY}}" >> $GITHUB_OUTPUT | |
| else # this is for workflow_call | |
| # todo(justinvdm, 25 Sep 2025): Re-enable yarn-classic once E2E tests are fixed | |
| echo 'matrix={"include":[{"os":"ubuntu-latest","package-manager":"pnpm"},{"os":"ubuntu-latest","package-manager":"npm"},{"os":"ubuntu-latest","package-manager":"yarn"},{"os":"macos-latest","package-manager":"pnpm"},{"os":"macos-latest","package-manager":"npm"},{"os":"macos-latest","package-manager":"yarn"}]}' >> $GITHUB_OUTPUT | |
| fi | |
| playground-e2e: | |
| needs: setup-matrix | |
| name: Playground E2E - ${{ matrix.os }} - ${{ matrix.package-manager }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: ${{ fromJson(needs.setup-matrix.outputs.matrix) }} | |
| timeout-minutes: 60 | |
| env: | |
| MAX_RETRIES: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_call') && '10' || '1' }} | |
| RWSDK_SETUP_PLAYGROUND_ENV_TIMEOUT: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_call') && '1800000' || '' }} # 30 mins | |
| RWSDK_DEPLOYMENT_TIMEOUT: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_call') && '900000' || '' }} # 15 mins | |
| RWSDK_DEPLOYMENT_MIN_TRIES: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_call') && '10' || '' }} | |
| RWSDK_DEPLOYMENT_CHECK_TIMEOUT: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_call') && '600000' || '' }} # 10 mins | |
| RWSDK_PUPPETEER_TIMEOUT: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_call') && '300000' || '' }} # 5 mins | |
| RWSDK_HYDRATION_TIMEOUT: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_call') && '10000' || '' }} # 10s | |
| RWSDK_DEV_SERVER_TIMEOUT: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_call') && '900000' || '' }} # 15 mins | |
| # context(justinvdm, 2025-09-20): | |
| # Only run this job for PRs from the same repository and pushes to main | |
| # For security, GH won't expose secrets for fork PRs | |
| if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Install dependencies | |
| shell: bash | |
| run: | | |
| corepack enable | |
| pnpm install | |
| - name: Build SDK | |
| shell: bash | |
| run: | | |
| cd sdk | |
| pnpm build | |
| - name: Run Playground E2E Tests | |
| id: tests | |
| shell: bash | |
| run: | | |
| pnpm install | |
| ./scripts/retry.sh pnpm test:e2e | |
| env: | |
| CI: 1 | |
| PACKAGE_MANAGER: ${{ matrix.package-manager }} | |
| - name: Upload playground artifacts | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: playground-e2e-artifacts-${{ matrix.os }}-${{ matrix.package-manager }} | |
| path: | | |
| /tmp/*-e2e-test-* | |
| playground/**/node_modules/.cache/wrangler | |
| retention-days: 7 |