refactor: adopt toolregistry-server 0.4.0 App/ServerIdentity pattern #153
Workflow file for this run
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: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| jobs: | |
| pre-commit: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - uses: pre-commit/action@v3.0.1 | |
| test-core: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest] | |
| python-version: ["3.12"] | |
| include: | |
| - os: macos-latest | |
| python-version: "3.12" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install core dependencies | |
| run: | | |
| uv sync --dev | |
| - name: Run core tests | |
| run: | | |
| uv run pytest tests/ -v --ignore=tests/test_remote_agent.py | |
| cli-smoke: | |
| # Smoke-tests the installed `uxarray-mcp` CLI against the user-home config | |
| # discovery path. Catches packaging / entry-point regressions that pytest | |
| # against the source tree would not see. | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install package | |
| run: | | |
| uv sync --dev | |
| - name: CLI help surfaces | |
| run: | | |
| uv run uxarray-mcp --help | |
| uv run uxarray-mcp serve --help | |
| uv run uxarray-mcp setup --help | |
| uv run uxarray-mcp endpoints --help | |
| uv run uxarray-mcp endpoints list --help | |
| uv run uxarray-mcp endpoints add --help | |
| uv run uxarray-mcp doctor --help | |
| uv run uxarray-mcp install-claude --help | |
| - name: CLI list/setup roundtrip | |
| run: | | |
| uv run uxarray-mcp setup | |
| uv run uxarray-mcp endpoints add ci-stub 00000000-0000-0000-0000-000000000000 --path-prefix /tmp/ | |
| uv run uxarray-mcp endpoints list | |
| - name: CLI doctor (no remote probe) | |
| # `doctor` exits non-zero whenever any check fails, including the | |
| # "endpoint not reachable" case we expect in CI (the stub endpoint | |
| # UUID is unregistered). Treat the command as a smoke test of the | |
| # entry point and JSON serialization, not the health verdict. | |
| run: | | |
| uv run uxarray-mcp doctor --skip-remote-probe || true | |
| package-smoke: | |
| # Builds the wheel and installs it into a fresh venv. This catches missing | |
| # package data and console-script regressions before publishing to PyPI. | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Build wheel and sdist | |
| run: uv build | |
| - name: Install wheel in a clean venv | |
| run: | | |
| uv venv /tmp/uxarray-mcp-wheel --python 3.12 | |
| uv pip install --python /tmp/uxarray-mcp-wheel/bin/python dist/uxarray_mcp-*.whl | |
| /tmp/uxarray-mcp-wheel/bin/uxarray-mcp --help | |
| test-hpc: | |
| runs-on: ubuntu-latest | |
| # HPC lane is non-blocking — requires Globus Compute which may not install cleanly | |
| continue-on-error: true | |
| strategy: | |
| matrix: | |
| python-version: ["3.12"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install HPC dependencies | |
| run: | | |
| uv sync --extra hpc --dev | |
| - name: Run HPC tests | |
| run: | | |
| uv run pytest tests/test_remote_agent.py tests/test_hpc_safety.py -v | |
| docs: | |
| runs-on: ubuntu-latest | |
| needs: [pre-commit, test-core] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install docs dependencies | |
| run: | | |
| uv sync --extra docs --dev | |
| - name: Build Sphinx docs | |
| run: | | |
| uv run sphinx-build -b html docs docs/_build/html -W --keep-going |