Skip to content

Add TODO comments for untested NeoSoft and SafeTech models #1183

Add TODO comments for untested NeoSoft and SafeTech models

Add TODO comments for untested NeoSoft and SafeTech models #1183

Workflow file for this run

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