Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions .github/workflows/build-streamcloud.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: streamcloud-rs CI

on:
workflow_dispatch:
push:
paths:
- "streamcloud-rs/**"
- ".github/workflows/build-streamcloud.yml"
pull_request:
paths:
- "streamcloud-rs/**"

jobs:
test:
runs-on: ubuntu-latest
defaults:
run:
working-directory: streamcloud-rs
steps:
- uses: actions/checkout@v4
- name: Install Rust
run: |
rustup toolchain install stable --profile minimal --component clippy rustfmt
rustup target add wasm32-unknown-unknown
- name: Format check
run: cargo fmt --all --check
- name: Clippy
run: cargo clippy --workspace --all-targets -- -D warnings
- name: Test
run: cargo test --workspace
- name: Build candle backend
run: cargo build -p streamcloud-model --features candle
- name: Build WASM
run: cargo build -p streamcloud-wasm --target wasm32-unknown-unknown --release
59 changes: 59 additions & 0 deletions .github/workflows/streamcloud-pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: StreamCloud demo → GitHub Pages

# Scoped to the StreamCloud port so it never runs on unrelated monorepo changes.
on:
workflow_dispatch:
push:
branches: [main]
paths:
- "streamcloud-rs/**"
- ".github/workflows/streamcloud-pages.yml"

permissions:
contents: read
pages: write
id-token: write

# Allow one concurrent deployment.
concurrency:
group: streamcloud-pages
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: streamcloud-rs
steps:
- uses: actions/checkout@v4

- name: Install Rust + wasm target
run: |
rustup toolchain install stable --profile minimal
rustup target add wasm32-unknown-unknown

- name: Install wasm-pack
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh

- name: Build WASM bundle
run: wasm-pack build crates/streamcloud-wasm --target web --release --out-dir ../../demo/pkg

- name: Assemble site
run: touch demo/.nojekyll

- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: streamcloud-rs/demo

deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[workspace]
exclude = ["external/ruqu", "external/rvdna", "examples/OSpipe", "examples/rvf", "crates/micro-hnsw-wasm", "crates/ruvector-hyperbolic-hnsw", "crates/ruvector-hyperbolic-hnsw-wasm", "examples/ruvLLM/esp32", "examples/ruvLLM/esp32-flash", "examples/edge-net", "examples/data", "examples/ruvLLM", "examples/delta-behavior", "crates/rvf", "crates/rvf/*", "crates/rvf/*/*", "examples/rvf-desktop", "crates/mcp-brain-server",
exclude = ["streamcloud-rs", "streamcloud-rs/*", "streamcloud-rs/crates/*", "external/ruqu", "external/rvdna", "examples/OSpipe", "examples/rvf", "crates/micro-hnsw-wasm", "crates/ruvector-hyperbolic-hnsw", "crates/ruvector-hyperbolic-hnsw-wasm", "examples/ruvLLM/esp32", "examples/ruvLLM/esp32-flash", "examples/edge-net", "examples/data", "examples/ruvLLM", "examples/delta-behavior", "crates/rvf", "crates/rvf/*", "crates/rvf/*/*", "examples/rvf-desktop", "crates/mcp-brain-server",
# emergent-time-wasm: standalone cdylib with own opt-level=z, panic=abort
"crates/emergent-time-wasm",
# sonic-ct crates: self-contained detached workspaces
Expand Down
9 changes: 9 additions & 0 deletions streamcloud-rs/.cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# The parent repo's .cargo/config.toml forces the crates.io *git* protocol,
# which routes through github.com and is blocked in the sandboxed build env.
# The sparse protocol uses index.crates.io, which is allow-listed. This nested
# config takes precedence when cargo is invoked from within streamcloud-rs.
[registries.crates-io]
protocol = "sparse"

[net]
git-fetch-with-cli = true
9 changes: 9 additions & 0 deletions streamcloud-rs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/target
**/*.rs.bk
*.safetensors
*.mp4
*.png
!demo/assets/*.png
checkpoints/
demo/pkg/
.DS_Store
Loading
Loading