Merge pull request #118 from SafeRL-Lab/fix/headless-bridges-slash-v3 #224
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: | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e ".[web,autosuggest]" | |
| pip install pytest | |
| - name: Run tests | |
| run: python -m pytest tests/ -x -q --tb=short | |
| package-smoke: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.13"] | |
| steps: | |
| - 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 | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install . | |
| - name: Smoke test — all modules importable | |
| run: | | |
| python -c " | |
| import sys, importlib | |
| # Top-level modules from pyproject.toml py-modules | |
| modules = [ | |
| 'cheetahclaws', 'agent', 'agent_runner', 'bootstrap', | |
| 'circuit_breaker', 'cloudsave', 'compaction', 'cc_config', | |
| 'context', 'health', 'jobs', 'logging_utils', 'memory', | |
| 'providers', 'quota', 'runtime', 'skills', 'subagent', | |
| 'tmux_tools', 'tool_registry', | |
| ] | |
| # Packages from pyproject.toml packages | |
| packages = [ | |
| 'tools', 'tools.security', 'tools.fs', 'tools.shell', | |
| 'tools.web', 'tools.notebook', 'tools.diagnostics', | |
| 'tools.interaction', | |
| 'cc_mcp', 'monitor', 'multi_agent', 'plugin', 'skill', 'task', | |
| 'voice', 'video', 'checkpoint', 'ui', 'bridges', 'commands', | |
| 'modular', | |
| ] | |
| failed = [] | |
| for mod in modules + packages: | |
| try: | |
| importlib.import_module(mod) | |
| except Exception as e: | |
| failed.append((mod, str(e))) | |
| if failed: | |
| print('FAILED to import:') | |
| for name, err in failed: | |
| print(f' {name}: {err}') | |
| sys.exit(1) | |
| else: | |
| print(f'All {len(modules) + len(packages)} modules imported OK') | |
| " | |
| - name: Smoke test — CLI entry point exists | |
| run: python -c "from cheetahclaws import main; print('Entry point OK')" |