Skip to content

refactor: adopt toolregistry-server 0.4.0 App/ServerIdentity pattern #153

refactor: adopt toolregistry-server 0.4.0 App/ServerIdentity pattern

refactor: adopt toolregistry-server 0.4.0 App/ServerIdentity pattern #153

Workflow file for this run

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