refactor: Migrate entire codebase from PyQt6 to PySide6 for Nuitka ma… #18
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, develop ] | |
| pull_request: | |
| branches: [ main ] | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10' | |
| cache: 'pip' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install ruff | |
| - name: Check formatting and lint with Ruff | |
| run: | | |
| ruff check . --select=E9,F63,F7,F82 | |
| ruff format --check . | |
| - name: Check complexity with Ruff (Warning only) | |
| run: | | |
| ruff check . --select C901 --exit-zero | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ['3.9', '3.10', '3.11', '3.12'] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'pip' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| pip install pytest pytest-cov | |
| - name: Test imports | |
| run: | | |
| python -c "from src.physics import RadarParameters, ITU_R_P676, SwerlingRCS" | |
| python -c "from src.tracking import LinearKalmanFilter, TrackManager" | |
| python -c "from src.physics import ECMSimulator" | |
| - name: Run tests with pytest | |
| run: | | |
| pytest tests/ -v --cov=. --cov-report=xml || echo "No tests found yet" | |
| - name: Upload coverage | |
| uses: codecov/codecov-action@v4 | |
| if: matrix.python-version == '3.10' | |
| with: | |
| file: ./coverage.xml | |
| fail_ci_if_error: false | |
| type-check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10' | |
| cache: 'pip' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install mypy | |
| pip install -r requirements.txt | |
| - name: Type check with mypy | |
| run: | | |
| mypy --ignore-missing-imports --no-strict-optional src/ || true | |
| security: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10' | |
| cache: 'pip' | |
| - name: Install Bandit | |
| run: pip install bandit | |
| - name: Security check with Bandit | |
| run: | | |
| bandit -r src/ -x ./tests -ll || true | |
| docs: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10' | |
| cache: 'pip' | |
| - name: Verify documentation exists | |
| run: | | |
| test -f README.md | |
| test -f LICENSE | |
| test -f CONTRIBUTING.md | |
| test -f CHANGELOG.md | |
| test -f docs/SCIENTIFIC_METHODOLOGY.md | |
| echo "All documentation files present!" |