chore: release v0.5.0 #196
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: | |
| jobs: | |
| format: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt | |
| - run: cargo fmt --all -- --check | |
| clippy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@1.86.0 | |
| with: | |
| components: clippy | |
| - uses: Swatinem/rust-cache@v2 | |
| - run: sudo apt-get update && sudo apt-get install -y libasound2-dev | |
| - run: cargo clippy --workspace --all-targets -- -D warnings | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: wasm32-unknown-unknown | |
| - uses: Swatinem/rust-cache@v2 | |
| # cpal's Linux (ALSA) backend needs the libasound headers to build. | |
| - run: sudo apt-get update && sudo apt-get install -y libasound2-dev | |
| # lm-llamacpp links sherpa's static libraries and llama.cpp into one | |
| # binary; on x86-64 Linux that combination aborts in C++ static | |
| # initialization (std::bad_alloc) before the harness runs, even though | |
| # its only test is model-backed and ignored in CI. Each library links | |
| # fine alone — only the combined binary fails. Skip running it here; | |
| # the clippy job still builds it. | |
| - run: cargo test --workspace --exclude lm-llamacpp | |
| # Portability gate. The sans-IO core, the runtime-agnostic async layer, and | |
| # every platform-neutral trait crate must compile for the browser — no | |
| # host-only dependency may creep in. Concrete backends are exempt: they are | |
| # allowed to be host-specific (pipecrab-audio-cpal is native-only, so it is | |
| # not checked here; the browser audio path will be a separate crate). | |
| # | |
| # The sans-IO core is pure logic — no async, no I/O — so it must build everywhere. | |
| - run: cargo check -p pipecrab-core --target wasm32-unknown-unknown | |
| # The runtime must stay executor-agnostic and build for the browser. | |
| - run: cargo check -p pipecrab-runtime --target wasm32-unknown-unknown | |
| # The audio I/O trait crate is platform-neutral and must build for the browser too. | |
| - run: cargo check -p pipecrab-audio --target wasm32-unknown-unknown | |
| # The STT interface is only the Transcriber trait plus its adapter — no engine — so | |
| # it must build for the browser, where the engine is Transformers.js in a Worker. | |
| - run: cargo check -p pipecrab-stt --target wasm32-unknown-unknown | |
| # The VAD interface is likewise engine-free — just the VoiceActivityDetector trait — | |
| # so it must build for the browser, where the engine is onnxruntime-web. | |
| - run: cargo check -p pipecrab-vad --target wasm32-unknown-unknown | |
| # The TTS interface is engine-free — the Synthesizer trait, its stage, and the | |
| # chunker — so it must build for the browser, where the engine runs in a Worker. | |
| - run: cargo check -p pipecrab-tts --target wasm32-unknown-unknown | |
| # The LM interface is engine-free — the LanguageModel trait plus the LmStage | |
| # adapter — so it must build for the browser, where the engine runs in a Worker. | |
| - run: cargo check -p pipecrab-lm --target wasm32-unknown-unknown |