Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: CI/CD Pipeline
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
CARGO_TERM_COLOR: always
jobs:
rust-checks:
name: Rust Linting and Testing
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
components: rustfmt, clippy
- name: Cache Rust dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-
- name: Check formatting
run: cargo fmt --all -- --check
- name: Run clippy
run: cargo clippy --all-targets --all-features -- -D warnings
- name: Build project
run: cargo build --verbose
- name: Run Rust tests
run: cargo test --verbose
21 changes: 0 additions & 21 deletions .github/workflows/ci.yml

This file was deleted.

10 changes: 7 additions & 3 deletions .github/workflows/deploy-crate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@ name: Deploy to crates.io
on:
push:
tags:
- 'v*'
- '*'
# Add explicit permissions
permissions:
contents: write
packages: write
jobs:
deploy:
runs-on: ubuntu-latest
Expand All @@ -16,7 +20,7 @@ jobs:
override: true
components: rustfmt, clippy
- name: Cache cargo registry
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
Expand Down Expand Up @@ -45,7 +49,7 @@ jobs:
draft: false
prerelease: false
tag_name: ${{ github.ref_name }}
name: Release ${{ github.ref_name }}
name: Release v${{ github.ref_name }}
body: |
## What's Changed

Expand Down
120 changes: 120 additions & 0 deletions .github/workflows/integration-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
name: Python Integration Tests
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
python-integration-test:
name: Python Integration Tests
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.12']
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Cache Rust dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-
- name: Cache Python dependencies
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-${{ matrix.python-version }}-
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install -r bin/requirements.txt
- name: Build Rust project (release mode for integration tests)
run: cargo build --release
- name: Run quick tests
run: |
cd ${{ github.workspace }}
bash bin/quick_test.sh
- name: Run Python integration tests
run: |
cd ${{ github.workspace }}
python bin/integration_test.py
env:
RUST_LOG: error
- name: Upload test artifacts (on failure)
if: failure()
uses: actions/upload-artifact@v4
with:
name: integration-test-logs-python-${{ matrix.python-version }}
path: |
target/debug/
target/release/
retention-days: 7
benchmark:
name: Performance Benchmarks
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Cache dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install -r bin/requirements.txt
- name: Build project (release mode)
run: cargo build --release
- name: Run quick tests
run: |
cd ${{ github.workspace }}
bash bin/quick_test.sh
- name: Run microbenchmarks
run: |
cd ${{ github.workspace }}
python bin/microbenchmark.py
continue-on-error: true
- name: Upload benchmark results
uses: actions/upload-artifact@v4
with:
name: benchmark-results
path: |
*.benchmark.json
*.benchmark.txt
retention-days: 30
22 changes: 0 additions & 22 deletions .github/workflows/lint.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"label": "Rust: Format",
"type": "shell",
"command": "cargo fmt --all",
"command": "cargo fmt --all --check",
"group": "build",
"problemMatcher": []
},
Expand Down
Loading
Loading