Skip to content

publish: release 0.15.0 #837

publish: release 0.15.0

publish: release 0.15.0 #837

Workflow file for this run

name: Package smoke
on:
pull_request:
paths:
- "pyproject.toml"
- "src/raitap/**"
- "uv.lock"
- ".github/workflows/package-smoke.yml"
jobs:
build:
# Single-version build: the produced wheel/sdist is identical regardless
# of the interpreter that ran ``uv build``. We only validate metadata
# once and only upload the 3.13 artifact to ``smoke-extras``.
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
with:
python-version: "3.13"
- uses: astral-sh/setup-uv@v7
with:
enable-cache: true
cache-dependency-glob: uv.lock
- name: Build sdist and wheel
run: uv build
- name: Check metadata
run: uvx twine check dist/*
- name: Upload built dist
uses: actions/upload-artifact@v7
with:
name: raitap-dist
path: dist/
retention-days: 1
smoke-extras:
needs: build
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.11", "3.13"]
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- uses: astral-sh/setup-uv@v7
with:
enable-cache: true
cache-dependency-glob: uv.lock
- name: Download built dist
uses: actions/download-artifact@v8
with:
name: raitap-dist
path: dist/
- name: Install + import smoke per extra
# One job per Python version loops through every extra: install the
# wheel with that extra, then import raitap. Per-extra logs are
# grouped so the failing extra is one collapsed group away from the
# job log root. Collapses 10×2 matrix jobs into 2 PR checks.
shell: bash
run: |
set -euo pipefail
WHEEL=$(ls dist/raitap-*.whl | head -n1)
for extra in torch-cpu onnx-cpu shap captum torchattacks foolbox mlflow metrics reporting launcher xgboost text; do
echo "::group::extra=${extra}"
rm -rf .venv
uv venv --python ${{ matrix.python-version }}
uv pip install "${WHEEL}[${extra}]"
uv run python -c "import raitap; print(raitap.__name__)"
echo "::endgroup::"
done