Skip to content

Add CI gates for Swift, Rust, Studio, validation, and benchmark smoke #5

Description

@DennisWayo

Problem Statement

SchroSIM is already positioned as reproducible research software, but the main CI workflow only builds the Python source distribution, checks package metadata, installs the package, and runs schrosim --help. That misses the Swift simulator, the SwiftUI Studio target, the Rust runtime, cross-runtime validation, trace SLOs, and benchmark smoke gates described in the developer docs.

Proposed Solution

Expand .github/workflows/ci.yml into a real public confidence gate:

  • macOS Swift job: bash scripts/swift-test.sh, swift build --product schrosim-cli, swift build --product schrosim-studio, swift run schrosim-cli version.
  • Rust job: cargo test -p schrosim-core, cargo run -q -p schrosim-core -- version.
  • Validation job: bash scripts/cv-validation-suite.sh --runtime both and bash scripts/trace-slo-check.sh --max-gates 512 --max-frame-ms 50.
  • Benchmark smoke job with a short compute-benchmark.sh run and explicit p95 budget.

Acceptance Criteria

  • Pull requests fail if Swift tests, Rust tests, Studio build, validation suite, or trace SLO fail.
  • CI uploads validation and benchmark JSON outputs as artifacts.
  • CI status names are stable enough to become branch protection checks.
  • The developer guide points to the workflow instead of describing this as a mostly manual release preflight.

Validation

bash scripts/swift-test.sh
cargo test -p schrosim-core
bash scripts/cv-validation-suite.sh --runtime both
bash scripts/trace-slo-check.sh --max-gates 512 --max-frame-ms 50

Evidence

  • .github/workflows/ci.yml
  • docs/13-developer-guide.md
  • docs/09-validation-and-benchmarks.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions