Skip to content

Run workers-sdk tests on PRs #11512

Run workers-sdk tests on PRs

Run workers-sdk tests on PRs #11512

Workflow file for this run

name: Tests
on:
pull_request:
paths-ignore:
- 'doc/**'
merge_group:
push:
branches:
- main
concurrency:
# Cancel existing builds for the same PR.
# Otherwise, all other builds will be allowed to run through.
group: test.yml-${{ github.event.pull_request.number || github.run_id }}
cancel-in-progress: true
jobs:
fixup:
if: github.event_name == 'pull_request'
uses: ./.github/workflows/fixup.yml
labels:
if: github.event_name == 'pull_request'
uses: ./.github/workflows/labels.yml
test:
strategy:
matrix:
os:
[
{ name: linux, image: ubuntu-22.04 },
{ name: linux-arm, image: ubuntu-22.04-arm },
{ name: macOS, image: macos-15 },
{ name: windows, image: windows-2025 },
]
config: [
# Default build: no suffix or additional bazel arguments
{ suffix: '' },
# Debug build
{ suffix: -debug },
]
include:
# Add an Address Sanitizer (ASAN) build on Linux for additional checking.
- os: { name: linux, image: ubuntu-22.04 }
config: { suffix: -asan }
# TODO (later): The custom Windows-debug configuration consistently runs out of disk
# space on CI, disable it for now. Once https://github.com/bazelbuild/bazel/issues/21615
# has been resolved we can likely re-enable it and possibly fold up the custom
# configurations, as we can more easily disable PDB file generation.
# - os: { name : windows, image : windows-2025 }
# config: { suffix: -debug, bazel-args: --config=windows_dbg }
exclude:
- os: { name: windows, image: windows-2025 }
config: { suffix: -debug }
# due to resource constraints, exclude the macOS and x64 Linux debug runners for now.
# linux-asan and arm64 linux-debug should provide sufficient coverage for building in the
# debug configuration.
- os: { name: macOS, image: macos-15 }
config: { suffix: -debug }
- os: { name: linux, image: ubuntu-22.04 }
config: { suffix: -debug }
fail-fast: false
uses: ./.github/workflows/_bazel.yml
with:
image: ${{ matrix.os.image }}
os_name: ${{ matrix.os.name }}
suffix: ${{ matrix.config.suffix }}
extra_bazel_args: '--config=ci-test'
secrets:
BAZEL_CACHE_KEY: ${{ secrets.BAZEL_CACHE_KEY }}
WORKERS_MIRROR_URL: ${{ secrets.WORKERS_MIRROR_URL }}
lint:
uses: ./.github/workflows/_bazel.yml
with:
extra_bazel_args: '--config=lint --config=ci-test'
run_tests: false
secrets:
BAZEL_CACHE_KEY: ${{ secrets.BAZEL_CACHE_KEY }}
WORKERS_MIRROR_URL: ${{ secrets.WORKERS_MIRROR_URL }}
workers-sdk-test:
needs: test
name: Run workers-sdk tests
runs-on: ubuntu-22.04-arm
steps:
- name: Checkout workers-sdk
uses: actions/checkout@v4
with:
repository: cloudflare/workers-sdk
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
# Match workers-sdk node version
node-version: 18.20.5
cache: 'pnpm'
- name: Install workers-sdk dependencies
run: pnpm install
- name: Download workerd binary
uses: actions/download-artifact@v4
with:
name: linux-arm-ARM64-binary
path: /tmp
- name: Make workerd binary executable
run: chmod +x /tmp/workerd
- name: Build Wrangler + Miniflare & dependencies
run: pnpm build --filter miniflare --filter wrangler
- name: Run Miniflare tests
run: pnpm test:ci --concurrency 1 --filter miniflare --filter wrangler
env:
MINIFLARE_WORKERD_PATH: /tmp/workerd