Replace stale offline-licensing cap check with DB-backed per-tenant cap #15
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: Smoke tests | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| # Allow manual runs | |
| workflow_dispatch: | |
| jobs: | |
| smoke: | |
| name: ${{ matrix.os }} · Python ${{ matrix.python-version }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| python-version: ["3.9", "3.12"] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install package from source with [mcp] extra | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install ".[mcp]" | |
| - name: Verify package imports and version matches | |
| run: | | |
| python -c "import octopoda; print('octopoda', octopoda.__version__)" | |
| python -c "import synrix_runtime; print('synrix_runtime', synrix_runtime.__version__)" | |
| python -c "import synrix; print('synrix', synrix.__version__)" | |
| - name: Run smoke tests | |
| run: python tests/ci_smoke.py | |
| # Extra job: verify the published wheel on PyPI matches the repo | |
| # (only runs on push to main — catches "I forgot to release" regressions) | |
| pypi-parity: | |
| name: PyPI wheel parity check | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Read repo version | |
| id: repo_version | |
| run: echo "version=$(grep '^version' pyproject.toml | head -1 | sed 's/.*\"\(.*\)\"/\\1/')" >> "$GITHUB_OUTPUT" | |
| - name: Fetch latest PyPI version | |
| id: pypi_version | |
| run: | | |
| v=$(curl -sL https://pypi.org/pypi/octopoda/json | python -c "import sys,json; print(json.load(sys.stdin)['info']['version'])") | |
| echo "version=$v" >> "$GITHUB_OUTPUT" | |
| - name: Compare | |
| run: | | |
| echo "repo: ${{ steps.repo_version.outputs.version }}" | |
| echo "pypi: ${{ steps.pypi_version.outputs.version }}" | |
| if [ "${{ steps.repo_version.outputs.version }}" != "${{ steps.pypi_version.outputs.version }}" ]; then | |
| echo "::warning::repo is at ${{ steps.repo_version.outputs.version }} but PyPI latest is ${{ steps.pypi_version.outputs.version }}. If the repo version is newer, remember to publish." | |
| else | |
| echo "Repo and PyPI match at ${{ steps.repo_version.outputs.version }}" | |
| fi |