Skip to content

lane 4A: mlflow consolidation onto ar-io-proof kernel + per-predict re-check #42

lane 4A: mlflow consolidation onto ar-io-proof kernel + per-predict re-check

lane 4A: mlflow consolidation onto ar-io-proof kernel + per-predict re-check #42

Workflow file for this run

name: tests
on:
push:
branches: [main]
pull_request:
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: pip
- name: Install plugin + test extras
run: |
python -m pip install --upgrade pip
pip install -e ".[test]"
- name: Run pytest
run: pytest -v --tb=short
# Real-MLflow (non-mocked) integration gate. Exercises every plugin flow on
# a real tracking store: training anchor, ArioMlflowClient registration +
# promotion, VerifiedModel load + predict + tamper rejection (all four
# models:/ URI forms), full_verify with live source-of-truth refetch,
# dataset anchoring, multi-model + multi-dataset, training-→-training chain
# (see docs/mlflow-v3-support.md).
#
# Matrix covers the *boundary* MLflow versions rather than just "latest each
# major" so regressions on the supported floor (2.14, declared in
# pyproject.toml) and the first 3.x release (3.0, when LoggedModel became
# first-class) are caught before users hit them. ``==2.14.*`` ships with a
# legacy ``setuptools`` API (``pkg_resources``) that newer setuptools (>=80)
# dropped — pinned in the install step so the import doesn't break.
integration:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
mlflow: ["==2.14.*", "==2.22.*", "==3.0.*", "==3.12.*"]
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: pip
- name: Install plugin + test extras + MLflow ${{ matrix.mlflow }} + sklearn
run: |
python -m pip install --upgrade pip
# setuptools<80 still ships ``pkg_resources``, which mlflow 2.14
# imports at module load. Newer setuptools removed it. Harmless on
# 2.22+/3.x.
pip install "setuptools<80"
pip install -e ".[test]" "mlflow${{ matrix.mlflow }}" scikit-learn
- name: Report MLflow version
run: python -c "import mlflow; print('MLflow', mlflow.__version__)"
- name: Run mocked suite (must be version-clean on every supported MLflow major)
run: pytest -q --tb=short
- name: Run real-MLflow integration gate
env:
ARIO_MLFLOW_INTEGRATION: "1"
run: pytest tests/test_mlflow3_integration.py -v --tb=short