Skip to content

chore(deps): Bump pyo3 from 0.23.5 to 0.24.1 #38

chore(deps): Bump pyo3 from 0.23.5 to 0.24.1

chore(deps): Bump pyo3 from 0.23.5 to 0.24.1 #38

Workflow file for this run

name: CI
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
env:
CARGO_TERM_COLOR: always
# Allow warnings for now - the codebase has some pre-existing warnings
# that should be addressed separately
RUSTFLAGS: ""
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: RustKernels/RustKernels
- name: Checkout RustCompute
uses: actions/checkout@v4
with:
repository: mivertowski/RustCompute
path: RustCompute/RustCompute
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Cache cargo registry
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
RustKernels/RustKernels/target
key: ${{ runner.os }}-cargo-${{ hashFiles('RustKernels/RustKernels/**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-
- name: Check formatting
working-directory: RustKernels/RustKernels
run: |
# Only check formatting for RustKernels packages, not path dependencies
for pkg in $(cargo metadata --no-deps --format-version=1 | jq -r '.packages[].name'); do
cargo fmt --package "$pkg" -- --check
done
- name: Run clippy
working-directory: RustKernels/RustKernels
# Allow clippy warnings for now - the codebase has many pre-existing style issues
# that should be addressed in a separate cleanup PR
run: cargo clippy --all-targets --all-features -- -W clippy::all
- name: Check default features
working-directory: RustKernels/RustKernels
run: cargo check
- name: Check with all features
working-directory: RustKernels/RustKernels
run: cargo check --all-features
test:
name: Test Suite
runs-on: ubuntu-latest
strategy:
matrix:
rust: [stable, beta]
steps:
- uses: actions/checkout@v4
with:
path: RustKernels/RustKernels
- name: Checkout RustCompute
uses: actions/checkout@v4
with:
repository: mivertowski/RustCompute
path: RustCompute/RustCompute
- name: Install Rust ${{ matrix.rust }}
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.rust }}
- name: Cache cargo registry
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
RustKernels/RustKernels/target
key: ${{ runner.os }}-cargo-${{ matrix.rust }}-${{ hashFiles('RustKernels/RustKernels/**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-${{ matrix.rust }}-
- name: Run tests (default features)
working-directory: RustKernels/RustKernels
run: cargo test --workspace
- name: Run tests (all features)
working-directory: RustKernels/RustKernels
run: cargo test --workspace --all-features
test-domains:
name: Test Individual Domains
runs-on: ubuntu-latest
strategy:
matrix:
domain:
- graph
- ml
- compliance
- temporal
- risk
- banking
- behavioral
- orderbook
- procint
- clearing
- treasury
- accounting
- payments
- audit
steps:
- uses: actions/checkout@v4
with:
path: RustKernels/RustKernels
- name: Checkout RustCompute
uses: actions/checkout@v4
with:
repository: mivertowski/RustCompute
path: RustCompute/RustCompute
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
RustKernels/RustKernels/target
key: ${{ runner.os }}-cargo-domain-${{ matrix.domain }}-${{ hashFiles('RustKernels/RustKernels/**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-domain-
- name: Test ${{ matrix.domain }} domain
working-directory: RustKernels/RustKernels
run: cargo test --package rustkernel-${{ matrix.domain }}
docs:
name: Documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: RustKernels/RustKernels
- name: Checkout RustCompute
uses: actions/checkout@v4
with:
repository: mivertowski/RustCompute
path: RustCompute/RustCompute
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
RustKernels/RustKernels/target
key: ${{ runner.os }}-cargo-docs-${{ hashFiles('RustKernels/RustKernels/**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-docs-
- name: Build documentation
working-directory: RustKernels/RustKernels
run: cargo doc --workspace --no-deps --all-features
env:
RUSTDOCFLAGS: -Dwarnings
coverage:
name: Code Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: RustKernels/RustKernels
- name: Checkout RustCompute
uses: actions/checkout@v4
with:
repository: mivertowski/RustCompute
path: RustCompute/RustCompute
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: llvm-tools-preview
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Generate coverage report
working-directory: RustKernels/RustKernels
run: cargo llvm-cov --workspace --all-features --lcov --output-path lcov.info
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
files: RustKernels/RustKernels/lcov.info
fail_ci_if_error: false
msrv:
name: Minimum Supported Rust Version
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: RustKernels/RustKernels
- name: Checkout RustCompute
uses: actions/checkout@v4
with:
repository: mivertowski/RustCompute
path: RustCompute/RustCompute
- name: Install Rust 1.85
uses: dtolnay/rust-toolchain@stable
with:
toolchain: "1.85"
- name: Check MSRV
working-directory: RustKernels/RustKernels
run: cargo check --workspace
security-audit:
name: Security Audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: RustKernels/RustKernels
- name: Install cargo-audit
run: cargo install cargo-audit
- name: Run security audit
working-directory: RustKernels/RustKernels
run: cargo audit
python-bindings:
name: Python Bindings
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.12"]
steps:
- uses: actions/checkout@v4
with:
path: RustKernels/RustKernels
- name: Checkout RustCompute
uses: actions/checkout@v4
with:
repository: mivertowski/RustCompute
path: RustCompute/RustCompute
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install maturin and pytest
run: pip install maturin pytest
- name: Build and install Python package
working-directory: RustKernels/RustKernels/crates/rustkernel-python
run: maturin develop --features full
- name: Run Python tests
working-directory: RustKernels/RustKernels/crates/rustkernel-python
run: pytest tests/ -v