forked from 1b-agent/opencadstudio-upstream
Reuse the application library from the binary entry point instead of compiling the module tree twice. Keep desktop-only transports and caches out of web builds, remove unused test code, and check executable targets in CI.
45 lines
1.3 KiB
YAML
45 lines
1.3 KiB
YAML
name: OCS control contract
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
workflow_dispatch:
|
|
jobs:
|
|
native:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 60
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- name: Validate control contract
|
|
run: |
|
|
cargo test --lib app::control::tests
|
|
cargo test --lib io::update_check::tests
|
|
cargo test --lib scene::pipeline::wire_arena::tests
|
|
cargo check --all-targets
|
|
- name: Validate MCP smoke script
|
|
if: runner.os != 'Windows'
|
|
run: python3 -m py_compile docs/automation/mcp_smoke.py
|
|
mcp:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Validate weekly release automation
|
|
run: python3 scripts/test_release.py
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- run: cargo test --lib mcp::tests
|
|
- run: cargo build
|
|
- run: python3 docs/automation/mcp_smoke.py target/debug/OpenCADStudio
|
|
web:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
targets: wasm32-unknown-unknown
|
|
- run: cargo check --lib --bins --target wasm32-unknown-unknown
|