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: 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 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