Operations layer + USB Phase 2 chain (rounds 22-47): full-stack landing #2
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: AutoControl Code Quality | |
| # Static analysis (ruff, bandit) plus the headless pytest suite added in | |
| # rounds 22-30. Decoupled from the existing dev/stable workflows, which | |
| # run legacy standalone test scripts and exist for hardware integration | |
| # coverage on Windows runners. | |
| on: | |
| push: | |
| branches: [ "dev", "main", "stable" ] | |
| pull_request: | |
| branches: [ "dev", "main", "stable" ] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| cache: "pip" | |
| - name: Install ruff | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install ruff | |
| - name: Run ruff | |
| run: ruff check je_auto_control/ | |
| security: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| cache: "pip" | |
| - name: Install bandit | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install bandit | |
| - name: Run bandit (recursive, skip tests + i18n dicts) | |
| run: bandit -r je_auto_control/ -c pyproject.toml | |
| pytest-headless: | |
| runs-on: windows-2022 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: [ "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 wheel | |
| pip install -r dev_requirements.txt | |
| pip install -e . | |
| - name: Run headless pytest suite | |
| run: pytest test/unit_test/headless/ -v --tb=short --timeout=120 |