forked from SafeRL-Lab/cheetahclaws
-
Notifications
You must be signed in to change notification settings - Fork 0
102 lines (88 loc) · 3.36 KB
/
Copy pathci.yml
File metadata and controls
102 lines (88 loc) · 3.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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
# The package + its single-file submodules (everything now lives
# under the cheetahclaws package — see pyproject [packages.find]).
modules = [
'cheetahclaws',
'cheetahclaws.agent', 'cheetahclaws.agent_runner',
'cheetahclaws.bootstrap', 'cheetahclaws.circuit_breaker',
'cheetahclaws.cloudsave', 'cheetahclaws.compaction',
'cheetahclaws.config', 'cheetahclaws.context',
'cheetahclaws.health', 'cheetahclaws.jobs',
'cheetahclaws.logging_utils', 'cheetahclaws.memory',
'cheetahclaws.providers', 'cheetahclaws.quota',
'cheetahclaws.runtime', 'cheetahclaws.skills',
'cheetahclaws.subagent', 'cheetahclaws.tmux_tools',
'cheetahclaws.tool_registry',
]
# Sub-packages.
packages = [
'cheetahclaws.tools', 'cheetahclaws.tools.security',
'cheetahclaws.tools.fs', 'cheetahclaws.tools.shell',
'cheetahclaws.tools.web', 'cheetahclaws.tools.notebook',
'cheetahclaws.tools.diagnostics', 'cheetahclaws.tools.interaction',
'cheetahclaws.mcp_client', 'cheetahclaws.monitor',
'cheetahclaws.multi_agent', 'cheetahclaws.plugin',
'cheetahclaws.skill', 'cheetahclaws.task', 'cheetahclaws.voice',
'cheetahclaws.video', 'cheetahclaws.checkpoint', 'cheetahclaws.ui',
'cheetahclaws.bridges', 'cheetahclaws.commands',
'cheetahclaws.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')"