#!/bin/bash # CI python-части репозитория: pyfglair + HA-компонент. # scripts/py-ci.sh --setup # venv для pyfglair-тестов # scripts/py-ci.sh --setup-ha # venv с homeassistant/pytest-плагином (тяжёлый) # scripts/py-ci.sh # pytest: tests/pyfglair + tests/components (если есть venv) set -euo pipefail cd "$(dirname "$0")/.." VENV="${PY_VENV:-.venv}" HA_VENV="${HA_VENV:-.venv-ha}" case "${1:-}" in --setup) python3 -m venv "$VENV" "$VENV/bin/pip" install -q --upgrade pip "$VENV/bin/pip" install -q cffi aiohttp pytest pytest-asyncio ;; --setup-ha) python3 -m venv "$HA_VENV" "$HA_VENV/bin/pip" install -q --upgrade pip "$HA_VENV/bin/pip" install -q -r tests/components/requirements.txt ;; esac if [ ! -x "$VENV/bin/python" ]; then echo "py-ci: нет $VENV (запустите: scripts/py-ci.sh --setup)" >&2 exit 1 fi "$VENV/bin/python" -m pytest tests/pyfglair tests/acceptance -q if [ -x "$HA_VENV/bin/python" ]; then "$HA_VENV/bin/python" -m pytest tests/components -q elif [ "${PY_CI_SKIP_HA:-0}" = "1" ]; then echo "py-ci: HA-тесты пропущены (PY_CI_SKIP_HA=1)" else echo "py-ci: нет $HA_VENV — запустите scripts/py-ci.sh --setup-ha" >&2 exit 1 fi