name: Wrangler E2E on: merge_group: pull_request: permissions: contents: read pull-requests: read jobs: e2e-wrangler-test: name: ${{ format('Wrangler E2E ({0}, shard {1}/4)', matrix.description, matrix.shard) }} concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.os }}-${{ matrix.shard }} cancel-in-progress: ${{ github.head_ref != 'changeset-release/main' }} timeout-minutes: 30 strategy: fail-fast: false matrix: os: [macos-latest, windows-latest, ubuntu-latest] shard: [1, 2, 3, 4] include: - os: macos-latest description: macOS - os: windows-latest description: Windows - os: ubuntu-latest description: Linux runs-on: ${{ matrix.os }} steps: - name: Checkout Repo uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: fetch-depth: 0 persist-credentials: false - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 id: changes with: filters: | everything_but_markdown: - '!**/*.md' - name: Check if remote tests should run id: check-remote uses: ./.github/actions/check-remote-tests - name: Install Dependencies if: steps.changes.outputs.everything_but_markdown == 'true' uses: ./.github/actions/install-dependencies with: turbo-api: ${{ secrets.TURBO_API }} turbo-team: ${{ secrets.TURBO_TEAM }} turbo-token: ${{ secrets.TURBO_TOKEN }} turbo-signature: ${{ secrets.TURBO_REMOTE_CACHE_SIGNATURE_KEY }} - name: Run Wrangler E2E tests if: steps.changes.outputs.everything_but_markdown == 'true' run: pnpm run test:e2e:wrangler env: CLOUDFLARE_API_TOKEN: ${{ steps.check-remote.outputs.run-remote == 'true' && secrets.TEST_CLOUDFLARE_API_TOKEN || '' }} CLOUDFLARE_ACCOUNT_ID: ${{ steps.check-remote.outputs.run-remote == 'true' && secrets.TEST_CLOUDFLARE_ACCOUNT_ID || '' }} HYPERDRIVE_DATABASE_URL: ${{ secrets.TEST_HYPERDRIVE_DATABASE_URL}} HYPERDRIVE_MYSQL_DATABASE_URL: ${{ secrets.TEST_HYPERDRIVE_MYSQL_DATABASE_URL}} NODE_OPTIONS: "--max_old_space_size=8192" WRANGLER_LOG_PATH: ${{ runner.temp }}/wrangler-debug-logs/ TEST_REPORT_PATH: ${{ runner.temp }}/test-report/index.html CI_OS: ${{ matrix.os }} E2E_SHARD: ${{ matrix.shard }} E2E_SHARD_COUNT: "4" - name: Run getPlatformProxy() remote-bindings e2e tests if: steps.changes.outputs.everything_but_markdown == 'true' && matrix.shard == 1 run: pnpm run test:e2e -F @fixture/get-platform-proxy-remote-bindings env: TEST_CLOUDFLARE_API_TOKEN: ${{ steps.check-remote.outputs.run-remote == 'true' && secrets.TEST_CLOUDFLARE_API_TOKEN || '' }} TEST_CLOUDFLARE_ACCOUNT_ID: ${{ steps.check-remote.outputs.run-remote == 'true' && secrets.TEST_CLOUDFLARE_ACCOUNT_ID || '' }} NODE_OPTIONS: "--max_old_space_size=8192" CI_OS: ${{ matrix.os }} - name: Upload turbo logs if: always() uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: turbo-runs-${{ matrix.os }}-shard-${{ matrix.shard }} path: .turbo/runs