This repository was archived by the owner on Jun 19, 2026. It is now read-only.
refactor: Rename roam-tcp to roam-stream and make transport generic #33
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| merge_group: | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUST_BACKTRACE: 1 | |
| jobs: | |
| rust-clippy: | |
| name: Rust / Clippy | |
| runs-on: depot-ubuntu-24.04-16 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy | |
| - name: Cache cargo | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Clippy (xtask) | |
| run: cargo xtask clippy | |
| rust-fmt: | |
| name: Rust / Format | |
| runs-on: depot-ubuntu-24.04-4 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt | |
| - name: Check formatting | |
| run: cargo xtask fmt | |
| rust-doc: | |
| name: Rust / Documentation | |
| runs-on: depot-ubuntu-24.04-16 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Cache cargo | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Build docs (xtask) | |
| run: cargo xtask doc | |
| rust-miri: | |
| name: Rust / Miri | |
| runs-on: depot-ubuntu-24.04-16 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - 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 | |
| - name: Run Miri (shm-primitives) | |
| run: cargo +nightly miri test -p shm-primitives | |
| # Note: Miri doesn't support all libc calls, so some tests may need to be skipped | |
| continue-on-error: true | |
| rust-loom: | |
| name: Rust / Loom | |
| runs-on: depot-ubuntu-24.04-16 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - 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: Run loom tests | |
| run: cargo nextest run -p shm-primitives | |
| env: | |
| RUSTFLAGS: "--cfg loom" | |
| rust-conformance: | |
| name: Conformance / Rust | |
| runs-on: depot-ubuntu-24.04-16 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - 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: cargo build -p subject-rust | |
| - name: Run spec tests | |
| run: cargo nextest run -p spec-tests | |
| env: | |
| SUBJECT_CMD: "./target/debug/subject-rust" | |
| typescript-conformance: | |
| name: Conformance / TypeScript | |
| runs-on: depot-ubuntu-24.04-4 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '25' | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - 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 TypeScript dependencies | |
| run: cd typescript && pnpm install | |
| - name: TypeScript typecheck (tsgo) | |
| run: cd typescript && pnpm check | |
| - name: Generate TypeScript bindings | |
| run: cargo xtask codegen --typescript | |
| - name: Run spec tests | |
| run: cargo nextest run -p spec-tests | |
| env: | |
| SUBJECT_CMD: "node --experimental-transform-types typescript/subject/subject.ts" | |
| swift-conformance: | |
| name: Conformance / Swift | |
| runs-on: depot-macos-14 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - 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 --package-path swift/subject | |
| - name: Run spec tests | |
| run: cargo nextest run -p spec-tests | |
| env: | |
| SUBJECT_CMD: "sh swift/subject/subject-swift.sh" | |
| go-conformance: | |
| name: Conformance / Go | |
| runs-on: depot-ubuntu-24.04-4 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: go/go.mod | |
| - 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: cd go && go build -o subject/subject-go ./subject | |
| - name: Run spec tests | |
| run: cargo nextest run -p spec-tests | |
| env: | |
| SUBJECT_CMD: "./go/subject/subject-go" | |
| java-conformance: | |
| name: Conformance / Java | |
| runs-on: depot-ubuntu-24.04-4 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: '25' | |
| - 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: sh java/subject/build.sh | |
| - name: Run spec tests | |
| run: cargo nextest run -p spec-tests | |
| env: | |
| SUBJECT_CMD: "sh java/subject/subject-java.sh" | |
| python-conformance: | |
| name: Conformance / Python | |
| runs-on: depot-ubuntu-24.04-4 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - 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: Run spec tests | |
| run: cargo nextest run -p spec-tests | |
| env: | |
| SUBJECT_CMD: "python3 python/subject/subject.py" |