Add TODO comments for untested NeoSoft and SafeTech models #1183
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 ] | |
| pull_request: | |
| branches: [ main ] | |
| permissions: | |
| contents: read | |
| jobs: | |
| test: | |
| name: Tests & Coverage | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: [3.13] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Cache pip | |
| uses: actions/cache@v5 | |
| with: | |
| path: ~/.cache/pip | |
| key: pip-${{ runner.os }}-requirements-${{ hashFiles('**/requirements*.txt') }} | |
| restore-keys: | | |
| pip-${{ runner.os }}-requirements- | |
| - name: Install system dependencies | |
| run: sudo apt-get update && sudo apt-get install -y build-essential | |
| - name: Install Python dev requirements | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -r requirements-dev.txt | |
| - name: Install coverage tooling | |
| run: | | |
| python -m pip install pytest-cov coverage | |
| - name: Export PYTHONPATH for tests | |
| run: echo "PYTHONPATH=$PYTHONPATH:$(pwd)" >> $GITHUB_ENV | |
| - name: Run tests with coverage | |
| run: | | |
| python -m pytest tests --cov=custom_components.syr_connect --cov-report=term-missing --cov-report=xml:coverage.xml -q | |
| - name: "Debug: show coverage artifacts" | |
| if: always() | |
| run: | | |
| echo "Listing repo root files" | |
| ls -la || true | |
| echo "Coverage XML exists:" | |
| [ -f coverage.xml ] && echo yes || echo no | |
| echo "Coverage HTML dir exists:" | |
| [ -d coverage_html ] && echo yes || echo no | |
| - name: Generate HTML coverage report | |
| if: always() | |
| run: | | |
| python -m pip install coverage | |
| coverage html -d coverage_html || true | |
| - name: Upload coverage XML | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: coverage-xml | |
| path: coverage.xml | |
| - name: Upload coverage HTML | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: coverage-html | |
| path: coverage_html | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| files: coverage.xml | |
| env: | |
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
| lint: | |
| name: Lint (ruff) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: [3.13] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Cache pip | |
| uses: actions/cache@v5 | |
| with: | |
| path: ~/.cache/pip | |
| key: pip-${{ runner.os }}-requirements-${{ hashFiles('**/requirements*.txt') }} | |
| restore-keys: | | |
| pip-${{ runner.os }}-requirements- | |
| - name: Install dev dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements-dev.txt | |
| - name: Run ruff lint | |
| run: ruff check . | |
| typecheck: | |
| name: Type Check (mypy) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: [3.13] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Cache pip | |
| uses: actions/cache@v5 | |
| with: | |
| path: ~/.cache/pip | |
| key: pip-${{ runner.os }}-requirements-${{ hashFiles('**/requirements*.txt') }} | |
| restore-keys: | | |
| pip-${{ runner.os }}-requirements- | |
| - name: Install dev dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements-dev.txt | |
| - name: Run mypy | |
| run: mypy custom_components/syr_connect |