@@ -2,35 +2,74 @@ name: Verify Roast CLI
22
33on :
44 workflow_dispatch :
5+ push :
6+ branches :
7+ - main
8+ paths :
9+ - ' .github/workflows/verify.yml'
10+ - ' README.md'
11+ - ' pyproject.toml'
12+ - ' roast/**'
13+ - ' tests/**'
14+ pull_request :
15+ paths :
16+ - ' .github/workflows/verify.yml'
17+ - ' README.md'
18+ - ' pyproject.toml'
19+ - ' roast/**'
20+ - ' tests/**'
21+
22+ permissions :
23+ contents : read
524
625jobs :
726 verify :
827 runs-on : ubuntu-latest
28+ strategy :
29+ fail-fast : false
30+ matrix :
31+ python-version : ['3.11', '3.12']
32+
933 steps :
1034 - name : Checkout
1135 uses : actions/checkout@v4
1236
1337 - name : Setup Python
1438 uses : actions/setup-python@v5
1539 with :
16- python-version : ' 3.11 '
40+ python-version : ${{ matrix.python-version }}
1741
1842 - name : Install
1943 run : |
2044 python -m pip install --upgrade pip
2145 pip install -e .
2246 pip install pytest
2347
24- - name : Run analyzer tests
25- run : pytest tests/test_analyzer.py
48+ - name : Run test suite
49+ run : pytest -q
2650
27- - name : CLI smoke test (local path)
28- run : roast . --no-llm --max-files 10
51+ - name : CLI smoke test (local path + config + JSON + fail-under)
52+ run : roast . --no-llm --max-files 12 --include-config --json-output roast-report.json --fail-under 1
53+
54+ - name : Validate JSON report schema
55+ run : |
56+ python - <<'PY'
57+ import json
58+ with open('roast-report.json', encoding='utf-8') as fh:
59+ data = json.load(fh)
60+ assert 'summary' in data
61+ assert 'counts' in data
62+ assert 'hotspots' in data
63+ assert 'issues' in data
64+ assert 'share' in data
65+ assert 'Overall' in data['summary']['scores']
66+ PY
2967
3068 - name : CLI smoke test (GitHub URL path)
3169 run : roast https://github.com/psf/requests --no-llm --max-files 10
3270
3371 - name : CLI smoke test (LLM Groq primary + NIM backup)
72+ if : matrix.python-version == '3.11'
3473 env :
3574 GROQ_API_KEY : ${{ secrets.GROQ_API_KEY }}
3675 NVIDIA_NIM_API_KEY : ${{ secrets.NVIDIA_NIM_API_KEY }}
@@ -39,13 +78,10 @@ jobs:
3978 echo "No LLM secrets configured; skipping LLM smoke test."
4079 exit 0
4180 fi
42- roast . --max-files 8 \
43- --provider auto \
44- --model llama-3.3-70b-versatile \
45- --backup-provider nim \
46- --backup-model microsoft/phi-4-mini-instruct
81+ roast . --max-files 8 --provider auto --model llama-3.3-70b-versatile --backup-provider nim --backup-model microsoft/phi-4-mini-instruct
4782
4883 - name : CLI smoke test (forced NIM fallback)
84+ if : matrix.python-version == '3.11'
4985 env :
5086 GROQ_API_KEY : invalid
5187 NVIDIA_NIM_API_KEY : ${{ secrets.NVIDIA_NIM_API_KEY }}
5490 echo "No NIM secret configured; skipping fallback smoke test."
5591 exit 0
5692 fi
57- roast . --max-files 8 \
58- --provider auto \
59- --model llama-3.3-70b-versatile \
60- --backup-provider nim \
61- --backup-model microsoft/phi-4-mini-instruct
93+ roast . --max-files 8 --provider auto --model llama-3.3-70b-versatile --backup-provider nim --backup-model microsoft/phi-4-mini-instruct
0 commit comments