publish: release 0.15.0 #837
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |