name: Test deployment tools on: pull_request: paths: - "scripts/cloudflare-deploy.mjs" - "scripts/wrangler-output.mjs" - "scripts/run-wrangler.mjs" - "scripts/upstream-sync-plan.mjs" - "scripts/wrangler-runner.mjs" - "scripts/verify-deployment.mjs" - ".dev.vars.example" - ".github/workflows/**" - "tests/deployment-entrypoints.test.ts" - "tests/wrangler-runner.test.ts" - "tests/deployment-verify.test.ts" - "package.json" - "bun.lock" push: branches: - main paths: - "scripts/cloudflare-deploy.mjs" - "scripts/wrangler-output.mjs" - "scripts/run-wrangler.mjs" - "scripts/upstream-sync-plan.mjs" - "scripts/wrangler-runner.mjs" - "scripts/verify-deployment.mjs" - ".dev.vars.example" - ".github/workflows/**" - "tests/deployment-entrypoints.test.ts" - "tests/wrangler-runner.test.ts" - "tests/deployment-verify.test.ts" - "package.json" - "bun.lock" permissions: contents: read jobs: wrangler: if: github.repository == 'tianma-if/edgeever' name: Wrangler runner (${{ matrix.os }}) runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-latest - windows-latest steps: - name: Checkout uses: actions/checkout@v5 - name: Set up Bun uses: oven-sh/setup-bun@v2 - name: Install dependencies shell: bash run: | for attempt in 1 2 3; do if bun install --frozen-lockfile; then exit 0 fi if [[ "$attempt" = "3" ]]; then exit 1 fi sleep "$((15 * attempt))" done - name: Launch project-local Wrangler run: bun scripts/run-wrangler.mjs --version - name: Test deployment tooling run: bun test tests/wrangler-runner.test.ts tests/deployment-verify.test.ts tests/deployment-entrypoints.test.ts