Verify Roast CLI #8
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: Verify Roast CLI | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - '.github/workflows/verify.yml' | |
| - 'README.md' | |
| - 'pyproject.toml' | |
| - 'roast/**' | |
| - 'tests/**' | |
| pull_request: | |
| paths: | |
| - '.github/workflows/verify.yml' | |
| - 'README.md' | |
| - 'pyproject.toml' | |
| - 'roast/**' | |
| - 'tests/**' | |
| permissions: | |
| contents: read | |
| jobs: | |
| verify: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ['3.11', '3.12'] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e . | |
| pip install pytest | |
| - name: Run test suite | |
| run: pytest -q | |
| - name: CLI smoke test (local path + config + JSON + fail-under) | |
| run: roast . --no-llm --max-files 12 --include-config --json-output roast-report.json --fail-under 1 | |
| - name: Validate JSON report schema | |
| run: | | |
| python - <<'PY' | |
| import json | |
| with open('roast-report.json', encoding='utf-8') as fh: | |
| data = json.load(fh) | |
| assert 'summary' in data | |
| assert 'counts' in data | |
| assert 'hotspots' in data | |
| assert 'issues' in data | |
| assert 'share' in data | |
| assert 'Overall' in data['summary']['scores'] | |
| PY | |
| - name: CLI smoke test (GitHub URL path) | |
| run: roast https://github.com/psf/requests --no-llm --max-files 10 | |
| - name: CLI smoke test (LLM Groq primary + NIM backup) | |
| if: matrix.python-version == '3.11' | |
| env: | |
| GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} | |
| NVIDIA_NIM_API_KEY: ${{ secrets.NVIDIA_NIM_API_KEY }} | |
| run: | | |
| if [ -z "$GROQ_API_KEY" ] && [ -z "$NVIDIA_NIM_API_KEY" ]; then | |
| echo "No LLM secrets configured; skipping LLM smoke test." | |
| exit 0 | |
| fi | |
| roast . --max-files 8 --provider auto --model llama-3.3-70b-versatile --backup-provider nim --backup-model microsoft/phi-4-mini-instruct | |
| - name: CLI smoke test (forced NIM fallback) | |
| if: matrix.python-version == '3.11' | |
| env: | |
| GROQ_API_KEY: invalid | |
| NVIDIA_NIM_API_KEY: ${{ secrets.NVIDIA_NIM_API_KEY }} | |
| run: | | |
| if [ -z "$NVIDIA_NIM_API_KEY" ]; then | |
| echo "No NIM secret configured; skipping fallback smoke test." | |
| exit 0 | |
| fi | |
| roast . --max-files 8 --provider auto --model llama-3.3-70b-versatile --backup-provider nim --backup-model microsoft/phi-4-mini-instruct |