This repository was archived by the owner on Jun 19, 2026. It is now read-only.
Bring Swift to parity #60
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 --profile loom -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-15 | |
| 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" |