workers-rs/.github/workflows/pullrequest.yml
2025-06-17 13:37:05 -07:00

93 lines
2.3 KiB
YAML

name: Pull Request
on:
- pull_request
- workflow_dispatch
jobs:
rustfmt:
name: Formatter
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: clippy, rustfmt
targets: wasm32-unknown-unknown
- name: Cache Rust dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-
- name: Check Formatting
run: cargo fmt --all -- --check
- name: Check for idiomatic code
run: cargo clippy --features d1,queue --all-targets --workspace -- -D warnings
- name: Check for idiomatic code (http)
run: cargo clippy --all-features --package worker-sandbox --all-targets -- -D warnings
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
- name: Cache Rust dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-
- name: Check for errors
run: cargo check
- name: Run builder tests
run: cargo test --manifest-path worker-build/Cargo.toml
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install packages
run: |
sudo apt update
sudo apt clean
sudo apt install -y build-essential libssl-dev netcat-traditional libc++-dev
- name: Install wasmpack
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- name: Build local worker-build
run: cargo install --path ./worker-build --force --debug
- name: Install npm dependencies
run: npm ci
- name: Run tests
run: npm run test
- name: Run tests (http)
run: npm run test-http