Skip to content

V117: all-features compilation, cargo deny, PRNG feature gate, docs/h… #103

V117: all-features compilation, cargo deny, PRNG feature gate, docs/h…

V117: all-features compilation, cargo deny, PRNG feature gate, docs/h… #103

Workflow file for this run

# SPDX-License-Identifier: AGPL-3.0-or-later
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
CARGO_TERM_COLOR: always
jobs:
check:
name: Rust checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy, rustfmt
- run: cargo fmt -p groundspring -p groundspring-validate -p groundspring-forge -- --check
- run: cargo clippy --workspace --all-targets -- -D warnings -W clippy::pedantic -W clippy::nursery
- run: cargo clippy --workspace --all-targets --features barracuda -- -D warnings -W clippy::pedantic -W clippy::nursery
- run: cargo clippy --workspace --all-targets --all-features -- -D warnings -W clippy::pedantic -W clippy::nursery
- run: RUSTDOCFLAGS="-D warnings" cargo doc --workspace --no-deps --all-features
- run: cargo test --workspace
- run: cargo test --workspace --features barracuda
- run: cargo test --workspace --all-features
validate:
name: Validation binaries
runs-on: ubuntu-latest
needs: check
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo run --bin validate_decompose
- run: cargo run --bin validate_rarefaction
- run: cargo run --bin validate_seismic
- run: cargo run --bin validate_weather
- run: cargo run --bin validate_fao56
- run: cargo run --bin validate_signal_specificity
- run: cargo run --bin validate_rawr
- run: cargo run --bin validate_anderson
- run: cargo run --bin validate_quasiperiodic
- run: cargo run --bin validate_bistable
- run: cargo run --bin validate_multisignal
- run: cargo run --bin validate_transport
- run: cargo run --bin validate_resampling_conv
- run: cargo run --bin validate_drift
- run: cargo run --bin validate_uncertainty_bridge
- run: cargo run --bin validate_rare_biosphere
- run: cargo run --bin validate_quasispecies
- run: cargo run --bin validate_band_edge
- run: cargo run --bin validate_jackknife
- run: cargo run --bin validate_freeze_out
- run: cargo run --bin validate_spectral_recon
- run: cargo run --bin validate_et0_anderson
- run: cargo run --bin validate_notill_sampling
- run: cargo run --bin validate_aggregate_stability
- run: cargo run --bin validate_precision_drift
- run: cargo run --bin validate_size_convergence
- run: cargo run --bin validate_vendor_parity
- run: cargo run --bin validate_npu_anderson || echo "NPU binary skipped (requires AKD1000 hardware)"
- run: cargo run --bin validate_tissue_anderson
- run: cargo run --bin validate_et0_methods
validate-biomeos:
name: biomeOS validation (NUCLEUS-dependent)
runs-on: ubuntu-latest
needs: check
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo run --features biomeos --bin validate_real_ghcnd_et0 || echo "skipped (requires NUCLEUS + NestGate)"
- run: cargo run --features biomeos --bin validate_real_ncbi_16s || echo "skipped (requires NUCLEUS + NestGate)"
- run: cargo run --features biomeos --bin validate_nucleus_stack || echo "skipped (requires NUCLEUS)"
- run: cargo run --features biomeos --bin validate_iris_seismic || echo "skipped (requires NUCLEUS + NestGate)"
validate-metalforge:
name: metalForge validation
runs-on: ubuntu-latest
needs: check
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo run --bin validate_metalforge_inventory || echo "metalForge inventory skipped (requires GPU hardware)"
- run: cargo run --bin validate_metalforge_spectral || echo "metalForge spectral skipped (requires GPU hardware)"
- run: cargo run --bin validate_metalforge_mathieu || echo "metalForge mathieu skipped (requires GPU hardware)"
- run: cargo run --bin validate_metalforge_pipeline || echo "metalForge pipeline skipped (requires GPU hardware)"
- run: cargo run --bin validate_metalforge_gpu || echo "metalForge GPU skipped (requires GPU hardware)"
- run: cargo run --bin validate_metalforge_titan_v || echo "metalForge Titan V skipped (requires GPU hardware)"
- run: cargo run --bin validate_metalforge_cross_substrate || echo "metalForge cross-substrate skipped (requires GPU+NPU)"
- run: cargo run --features biomeos --bin validate_nestgate_ncbi || echo "NestGate NCBI skipped (requires NUCLEUS)"
- run: cargo run --features biomeos --bin validate_nucleus_pipeline || echo "NUCLEUS pipeline skipped (requires NUCLEUS)"
- run: cargo run --bin validate_gpu_tier || echo "GPU tier skipped (requires GPU hardware)"
- run: cargo run --bin validate_pure_gpu_workloads || echo "pure GPU workloads skipped (requires GPU hardware)"
- run: cargo run --bin validate_mixed_hardware || echo "mixed hardware skipped (requires GPU+NPU)"
python:
name: Python baselines
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- run: pip install -e ".[dev]"
- run: ruff check control/ tests/
- run: mypy control/ tests/
- run: python -m pytest tests/test_common.py tests/test_determinism.py tests/test_baseline_integrity.py -v
- run: python -m pytest tests/test_experiments.py -v --timeout=300
- run: python -m pytest tests/ --cov=control --cov-fail-under=80 --timeout=300
coverage:
name: Coverage
runs-on: ubuntu-latest
needs: check
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: llvm-tools-preview
- run: cargo install cargo-llvm-cov
- run: cargo llvm-cov --workspace --ignore-filename-regex '(validate_|bench_|bin/)' --lcov --output-path lcov.info --fail-under-lines 90
- uses: actions/upload-artifact@v4
with:
name: coverage
path: lcov.info
deny:
name: Dependency Audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: EmbarkStudios/cargo-deny-action@v2
cross-compile:
name: Cross-Compile Check (ecoBin aarch64)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-unknown-linux-gnu
- name: cargo check (aarch64, no features)
run: cargo check --target aarch64-unknown-linux-gnu --workspace --no-default-features
- name: cargo check (aarch64, barracuda)
run: cargo check --target aarch64-unknown-linux-gnu --workspace --features barracuda