Skip to content

Eliminate MPI dependency, migrate to Expander v0.3.1 / ECC v0.3.1 #489

Eliminate MPI dependency, migrate to Expander v0.3.1 / ECC v0.3.1

Eliminate MPI dependency, migrate to Expander v0.3.1 / ECC v0.3.1 #489

Workflow file for this run

name: End-to-End Tests
on:
push:
branches: [ "main" ]
paths-ignore:
- "**/*.md"
- "docs/**"
- "LICENSE"
- ".gitignore"
pull_request:
paths-ignore:
- "**/*.md"
- "docs/**"
- "LICENSE"
- ".gitignore"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
RUST_NIGHTLY: nightly-2025-03-27
jobs:
formatting-and-linting:
name: Check Formatting and Linting
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.12"
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@nightly
with:
toolchain: ${{ env.RUST_NIGHTLY }}
components: rustfmt, clippy
- name: Install system dependencies
run: |
sudo apt-get update && sudo apt-get install -y \
pkg-config \
libclang-dev \
clang
- name: Install UV
uses: astral-sh/setup-uv@v7
- name: Install the project
run: uv sync --group test
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v47
with:
files: |
**/*.py
**/*.rs
- name: Run pre-commit on changed files
if: steps.changed-files.outputs.any_changed == 'true'
uses: pre-commit/action@v3.0.1
env:
SKIP: fmt,clippy
with:
extra_args: --files ${{ steps.changed-files.outputs.all_changed_files}}
- name: Run cargo fmt check
run: cargo fmt --all -- --check
- name: Run cargo clippy
run: cargo clippy --workspace --all-targets --all-features -- -D warnings
e2e-test:
name: End-to-End Testing
needs: formatting-and-linting
runs-on: ubuntu-latest
timeout-minutes: 45
strategy:
matrix:
python-version: ["3.12", "3.13"]
steps:
- uses: actions/checkout@v6
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@nightly
with:
toolchain: ${{ env.RUST_NIGHTLY }}
- name: Cache Rust dependencies
uses: actions/cache@v5
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Install UV
uses: astral-sh/setup-uv@v7
- name: Install the project
run: uv sync --group test
- name: Install system dependencies
run: |
sudo apt-get update && sudo apt-get install -y \
pkg-config \
libclang-dev \
clang
- name: Run E2E Tests
run: |
mkdir -p report
uv run pytest --e2e --model lenet --source onnx --html=report/e2e_tests.html
- name: Upload test report
uses: actions/upload-artifact@v6
with:
name: e2e-test-report-python-${{ matrix.python-version }}
path: report