Changes #1188
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: CI | ||
| on: | ||
| push: | ||
| pull_request: | ||
| jobs: | ||
| core-matrix: | ||
| runs-on: ${{ matrix.os }} | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| os: [ubuntu-latest, windows-latest] | ||
| python-version: ["3.11"] | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: actions/setup-python@v5 | ||
| with: | ||
| python-version: ${{ matrix.python-version }} | ||
| - name: Install base + pytest | ||
| run: | | ||
| python -m pip install --upgrade pip | ||
| pip install -e . | ||
| pip install pytest | ||
| - name: Core/headless smoke tests | ||
| run: pytest -q tests/test_cli_headless_optional_tui.py tests/test_init_cli.py tests/test_packaging_surface.py | ||
| dev-quality: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: actions/setup-python@v5 | ||
| with: | ||
| python-version: "3.11" | ||
| - name: Install dev dependencies | ||
| run: | | ||
| python -m pip install --upgrade pip | ||
| pip install -e '.[dev]' | ||
| - name: Run tests | ||
| run: pytest | ||
| - name: Ruff | ||
| run: ruff check . | ||
| - name: Mypy | ||
| run: mypy villani_code | ||
| packaging-smoke: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: actions/setup-python@v5 | ||
| with: | ||
| python-version: "3.11" | ||
| - name: Build distribution artifacts | ||
| run: | | ||
| python -m pip install --upgrade pip build | ||
| python -m build | ||
| - name: Install wheel and verify release surface | ||
| run: | | ||
| python -m venv .venv-smoke | ||
| . .venv-smoke/bin/activate | ||
| pip install dist/*.whl | ||
| villani-code --help > /dev/null | ||
| python - <<'PY' | ||
| import importlib.util | ||
| assert importlib.util.find_spec("villani_code") is not None | ||
| assert importlib.util.find_spec("villani_code.cli") is not None | ||
| assert importlib.util.find_spec("ui") is None | ||
| print("packaging smoke ok") | ||
| PY | ||