spectral_vm 0.1.6

HYPERION: Production-ready zero-knowledge virtual machine with spectral analysis
Documentation
name: CI

on:
  push:
    branches: [main, master]
  pull_request:
    branches: [main, master]

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust:
          - stable
          - beta

    steps:
      - uses: actions/checkout@v3

      - name: Install Rust
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ matrix.rust }}

      - name: Cache dependencies
        uses: Swatinem/rust-cache@v2

      - name: Install LLVM (for integration tests)
        run: |
          sudo apt-get update
          sudo apt-get install -y llvm-dev

      - name: Run tests
        run: cargo test --verbose

      - name: Run benchmarks
        run: cargo bench --no-run

      - name: Check documentation
        run: cargo doc --no-deps

  fuzz:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Install Rust
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: nightly

      - name: Cache dependencies
        uses: Swatinem/rust-cache@v2

      - name: Install cargo-fuzz
        run: cargo install cargo-fuzz

      - name: Run fuzz tests (short)
        run: |
          cargo fuzz run field_operations -- -max_total_time=30
          cargo fuzz run fri_operations -- -max_total_time=30
          cargo fuzz run vm_operations -- -max_total_time=30

  clippy:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Install Rust
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: stable

      - name: Install clippy
        run: rustup component add clippy

      - name: Run clippy
        run: cargo clippy -- -D warnings