Skip to content
This repository was archived by the owner on Jun 19, 2026. It is now read-only.

Update dependency @typescript/native-preview to v7.0.0-dev.20260618.1 #1363

Update dependency @typescript/native-preview to v7.0.0-dev.20260618.1

Update dependency @typescript/native-preview to v7.0.0-dev.20260618.1 #1363

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
merge_group:
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
jobs:
rust-lint:
name: Rust / Lint
runs-on: depot-ubuntu-24.04-16
timeout-minutes: 15
steps:
- uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Install protoc
run: sudo apt-get install -y protobuf-compiler
- name: Run clippy (strict)
run: cargo clippy --all-features --all-targets -- -D warnings
rust-tests:
name: Rust / Tests
runs-on: depot-ubuntu-24.04-16
timeout-minutes: 20
steps:
- uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Install cargo-nextest
uses: taiki-e/install-action@nextest
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Build Rust subject
run: cargo build --package subject-rust
- name: Test workspace (Rust-only)
run: cargo nextest run --workspace -E 'not test(/lang_.*(typescript|swift)/)'
rust-doc:
name: Rust / Documentation
runs-on: depot-ubuntu-24.04-16
timeout-minutes: 15
steps:
- uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Install protoc
run: sudo apt-get install -y protobuf-compiler
- name: Build docs (xtask)
run: cargo xtask doc
rust-examples:
name: Rust / Examples
runs-on: depot-ubuntu-24.04-4
timeout-minutes: 15
steps:
- uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Run all examples
run: |
for example in rust-examples/examples/*.rs; do
name="$(basename "${example}" .rs)"
# bench_client is a long-running benchmark tool, skip it in CI
if [ "${name}" = "bench_client" ] || [ "${name}" = "bench_runner" ] || [ "${name}" = "shootout" ]; then
echo "Skipping ${name} (benchmark, would hang)"
continue
fi
echo "::group::${name}"
cargo run -p rust-examples --example "${name}"
echo "::endgroup::"
done
rust-miri:
name: Rust / Miri
runs-on: depot-ubuntu-24.04-16
timeout-minutes: 20
steps:
- uses: actions/checkout@v6
- name: Install Rust nightly
uses: dtolnay/rust-toolchain@nightly
with:
components: miri
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Setup Miri
run: cargo +nightly miri setup
rust-conformance:
name: Conformance / Rust
runs-on: depot-ubuntu-24.04-16
timeout-minutes: 30
steps:
- uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
- name: Install cargo-nextest
uses: taiki-e/install-action@nextest
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Install wasm-pack
run: cargo install wasm-pack
- name: Build subject
run: cargo build -p subject-rust --release
- name: Run Rust TCP subject matrix tests
run: >
cargo nextest run -p spec-tests --test spec_matrix
-E 'test(lang_rust_transport_tcp::)'
- name: Run Rust binary payload transport matrix (mem/tcp)
run: >
cargo nextest run -p spec-tests --test spec_matrix
-E 'test(lang_rust_to_rust_transport_mem_direction_bidirectional_binary_payload_transport_matrix)
| test(lang_rust_to_rust_transport_tcp_direction_bidirectional_binary_payload_transport_matrix)'
generated-bindings:
name: Generated / Bindings Sync
runs-on: depot-ubuntu-24.04-4
timeout-minutes: 15
steps:
- uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Regenerate TypeScript and Swift bindings
run: cargo xtask codegen --typescript --swift
- name: Check generated bindings are committed
run: |
DRIFT="$(git status --porcelain -- typescript/generated swift/subject/Sources/subject-swift)"
if [ -n "$DRIFT" ]; then
echo "Generated bindings are out of date. Run: cargo xtask codegen --typescript --swift"
echo "$DRIFT"
git --no-pager diff -- typescript/generated swift/subject/Sources/subject-swift || true
exit 1
fi
typescript-conformance:
name: Conformance / TypeScript
runs-on: depot-ubuntu-24.04-4
timeout-minutes: 30
steps:
- uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: "25"
- name: Install pnpm
uses: pnpm/action-setup@v5
with:
version: 11
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Install cargo-nextest
uses: taiki-e/install-action@nextest
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Install dependencies
run: pnpm install
- name: TypeScript typecheck (tsgo)
run: cd typescript && pnpm check
- name: Build TypeScript packages
run: cd typescript && pnpm run build
- name: Generate TypeScript bindings
run: cargo xtask codegen --typescript
- name: Install Playwright browsers
run: pnpm --filter "@bearcove/vox-playwright-tests" exec playwright install --with-deps chromium
- name: Run TypeScript browser tests
run: pnpm --filter "@bearcove/vox-playwright-tests" run test
- name: Run TypeScript TCP subject matrix tests
run: >
cargo nextest run -p spec-tests --test spec_matrix --run-ignored all -E 'test(lang_typescript_transport_tcp::)'
swift-conformance:
name: Conformance / Swift
runs-on: depot-macos-15
timeout-minutes: 30
steps:
- uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Install cargo-nextest
uses: taiki-e/install-action@nextest
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Build subject
run: swift build -c release --package-path swift/subject
- name: Run VoxRuntime Swift tests
run: swift test --no-parallel -Xlinker -L$(pwd)/target/release
- name: Run Swift TCP subject matrix tests
run: >
cargo nextest run -p spec-tests --test spec_matrix --run-ignored all
-E 'test(lang_swift_transport_tcp::)'
swift-linux:
name: Conformance / Swift (Linux)
runs-on: depot-ubuntu-24.04-16
timeout-minutes: 30
steps:
- uses: actions/checkout@v6
- name: Setup Swift
uses: swift-actions/setup-swift@v2
with:
swift-version: "6.1"
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Install cargo-nextest
uses: taiki-e/install-action@nextest
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Build subject
run: swift build -c release --package-path swift/subject
- name: Run VoxRuntime Swift tests
run: swift test --no-parallel -Xlinker -L$(pwd)/target/release
- name: Run Swift TCP subject matrix tests
run: >
cargo nextest run -p spec-tests --test spec_matrix --run-ignored all
-E 'test(lang_swift_transport_tcp::)'
rust-wasm:
name: Rust / WebAssembly
runs-on: depot-ubuntu-24.04-4
timeout-minutes: 15
steps:
- uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Check vox-websocket for wasm32
run: cargo check --target wasm32-unknown-unknown -p vox-websocket
- name: Check wasm-browser-tests for wasm32
run: cargo check --target wasm32-unknown-unknown -p wasm-browser-tests
wasm-browser-tests:
name: Browser / Rust-Wasm
runs-on: depot-ubuntu-24.04-4
timeout-minutes: 15
steps:
- uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: "25"
- name: Install pnpm
uses: pnpm/action-setup@v5
with:
version: 11
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Install wasm-pack
run: cargo install wasm-pack
- name: Build wasm targets
run: |
wasm-pack build --target web rust/wasm-browser-tests --out-dir ../../wasm/tests/browser-wasm/pkg
wasm-pack build --target web rust/wasm-inprocess-tests --out-dir ../../wasm/tests/browser-inprocess/pkg
- name: Install dependencies
run: pnpm install
- name: Install Playwright browsers
run: pnpm --filter "@bearcove/vox-wasm-playwright-tests" exec playwright install --with-deps chromium
- name: Run Wasm browser tests
run: pnpm --filter "@bearcove/vox-wasm-playwright-tests" run test
rust-windows:
name: Rust / Windows
runs-on: depot-windows-2025-32
timeout-minutes: 30
steps:
- uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Install cargo-nextest
uses: taiki-e/install-action@nextest
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Build subject
run: cargo build -p subject-rust
- name: Test workspace (Rust-only, no cross-language)
run: cargo nextest run --workspace -E 'not test(/lang_.*(typescript|swift)/)'