519c95f452
Regenerate all real-data golden reference hex files against the current dual 16-point FFT Doppler architecture (staggered-PRI sub-frames). The old hex files were generated against the previous 32-point single-FFT architecture and caused 2048/2048 mismatches in both strict real-data TBs. Changes: - Regenerate doppler_ref_i/q.hex, fullchain_doppler_ref_i/q.hex, and all downstream golden files (MTI, DC notch, CFAR) via golden_reference.py - Add tb_doppler_realdata (exact-match, ADI CN0566 data) to regression - Add tb_fullchain_realdata (exact-match, decim->Doppler chain) to regression - Both TBs now pass: 2048/2048 bins exact match, MAX_ERROR=0 - Update CI comment: 23 -> 25 testbenches - Fill in STALE_NOTICE.md with regeneration instructions Regression: 25/25 pass, 0 fail, 0 skip. ruff check: 0 errors.
85 lines
2.4 KiB
YAML
85 lines
2.4 KiB
YAML
name: AERIS-10 CI
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [main, develop]
|
|
push:
|
|
branches: [main, develop]
|
|
|
|
jobs:
|
|
# ===========================================================================
|
|
# Python: lint (ruff), syntax check (py_compile), unit tests (pytest)
|
|
# CI structure proposed by hcm444 — uses uv for dependency management
|
|
# ===========================================================================
|
|
python-tests:
|
|
name: Python Lint + Tests
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- uses: astral-sh/setup-uv@v5
|
|
|
|
- name: Install dependencies
|
|
run: uv sync --group dev
|
|
|
|
- name: Ruff lint (whole repo)
|
|
run: uv run ruff check .
|
|
|
|
- name: Syntax check (py_compile)
|
|
run: |
|
|
uv run python - <<'PY'
|
|
import py_compile
|
|
from pathlib import Path
|
|
|
|
skip = {".git", "__pycache__", ".venv", "venv", "docs"}
|
|
for p in Path(".").rglob("*.py"):
|
|
if skip & set(p.parts):
|
|
continue
|
|
py_compile.compile(str(p), doraise=True)
|
|
PY
|
|
|
|
- name: Unit tests
|
|
run: >
|
|
uv run pytest
|
|
9_Firmware/9_3_GUI/test_radar_dashboard.py -v --tb=short
|
|
|
|
# ===========================================================================
|
|
# MCU Firmware Unit Tests (20 tests)
|
|
# Bug regression (15) + Gap-3 safety tests (5)
|
|
# ===========================================================================
|
|
mcu-tests:
|
|
name: MCU Firmware Tests
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install build tools
|
|
run: sudo apt-get update && sudo apt-get install -y build-essential
|
|
|
|
- name: Build and run MCU tests
|
|
run: make test
|
|
working-directory: 9_Firmware/9_1_Microcontroller/tests
|
|
|
|
# ===========================================================================
|
|
# FPGA RTL Regression (25 testbenches + lint)
|
|
# ===========================================================================
|
|
fpga-regression:
|
|
name: FPGA Regression
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install Icarus Verilog
|
|
run: sudo apt-get update && sudo apt-get install -y iverilog
|
|
|
|
- name: Run full FPGA regression
|
|
run: bash run_regression.sh
|
|
working-directory: 9_Firmware/9_2_FPGA
|