mirror of
https://github.com/cloudflare/workers-rs.git
synced 2025-12-08 18:01:59 +00:00
100 lines
2.7 KiB
YAML
100 lines
2.7 KiB
YAML
name: Pull Request
|
|
|
|
on:
|
|
- pull_request
|
|
- workflow_dispatch
|
|
|
|
jobs:
|
|
rustfmt:
|
|
name: Formatter
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: true
|
|
|
|
- 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
|
|
with:
|
|
submodules: true
|
|
|
|
- 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: 22
|
|
|
|
- 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 wasm-bindgen
|
|
run: cd wasm-bindgen && cargo build --release --package wasm-bindgen-cli --bin wasm-bindgen
|
|
|
|
- name: Build local worker-build
|
|
run: cargo install --path ./worker-build --force --debug
|
|
|
|
- name: Install npm dependencies
|
|
run: npm ci
|
|
|
|
- name: Run tests
|
|
run: WASM_BINDGEN_PATH=./wasm-bindgen/target/release/wasm-bindgen npm run test
|
|
|
|
- name: Run tests (http)
|
|
run: WASM_BINDGEN_PATH=./wasm-bindgen/target/release/wasm-bindgen npm run test-http
|