--- on: [push, pull_request] name: CI jobs: formatting: name: Formatting runs-on: docker steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Rust uses: https://github.com/actions-rust-lang/setup-rust-toolchain@v1 with: components: rustfmt - name: Check Rust formatting run: cargo fmt --all -- --check clippy: name: Clippy runs-on: docker steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Rust uses: https://github.com/actions-rust-lang/setup-rust-toolchain@v1 with: components: clippy - name: Run Clippy run: cargo clippy -- -D warnings check: name: Check runs-on: docker steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Rust uses: https://github.com/actions-rust-lang/setup-rust-toolchain@v1 - name: Check for Rust compilation errors run: cargo check build: name: Build runs-on: docker steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Rust uses: https://github.com/actions-rust-lang/setup-rust-toolchain@v1 - name: Set up Python toolchain uses: actions/setup-python@v5 with: python-version: 3.13.2 - name: Set up Python environment run: pip install -r requirements.txt - name: Build Rust code run: maturin develop test-rust: name: Test Rust runs-on: docker steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Rust uses: https://github.com/actions-rust-lang/setup-rust-toolchain@v1 - name: Run Rust tests run: cargo test