Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 86 additions & 0 deletions .github/workflows/myhome-conformance.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: MyHOME conformance

# OWNd is what every MyHOME installation runs. A change here is only as safe
# as the integration that consumes it, so every push and pull request is
# checked against MyHOME's development branch, with this checkout installed
# in place of the pinned release:
#
# corpus - the 255-vector golden corpus (tests/golden) plus MyHOME's own
# smoke gates: the parser must produce the same objects for the
# same frames. Fast and required.
# suite - MyHOME's full test suite. Catches the behavioural coupling
# a signature or state-machine change introduces. Required too:
# a failure here means the pin bump that follows a release
# would fail, so it is better learned now.
#
# Both run on Python 3.14 only: that is what Home Assistant 2026.3+ needs,
# and the OWNd matrix already covers the older interpreters.

on:
push:
pull_request:
workflow_dispatch:
inputs:
myhome_ref:
description: MyHOME ref to test against
default: v2-phase1-architecture
required: false

permissions:
contents: read

env:
MYHOME_REF: ${{ github.event.inputs.myhome_ref || 'v2-phase1-architecture' }}

jobs:
corpus:
name: Golden corpus & smoke gates
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
path: OWNd
- uses: actions/checkout@v7
with:
repository: OpenWebNet-HA/MyHOME
ref: ${{ env.MYHOME_REF }}
path: MyHOME
- uses: actions/setup-python@v7
with:
python-version: "3.14"
cache: pip
- name: Install this OWNd and MyHOME's test dependencies
run: |
python -m pip install --upgrade pip
python -m pip install ./OWNd
python -m pip install pytest-homeassistant-custom-component pytest-cov pytest-socket time-machine python-dateutil pytz freezegun requests-mock respx paho-mqtt tqdm jsonschema pyyaml packaging
python -c "import OWNd, importlib.metadata as m; print('OWNd', m.version('OWNd'), 'from', OWNd.__file__)"
python -c "import homeassistant.const as c; print('Home Assistant', c.__version__)"
- name: Golden corpus and smoke gates against this checkout
working-directory: MyHOME
run: python scripts/run_ownd_smoke.py --target dev --skip-install

suite:
name: MyHOME test suite
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
path: OWNd
- uses: actions/checkout@v7
with:
repository: OpenWebNet-HA/MyHOME
ref: ${{ env.MYHOME_REF }}
path: MyHOME
- uses: actions/setup-python@v7
with:
python-version: "3.14"
cache: pip
- name: Install this OWNd and MyHOME's test dependencies
run: |
python -m pip install --upgrade pip
python -m pip install ./OWNd
python -m pip install pytest-homeassistant-custom-component pytest-cov pytest-socket time-machine python-dateutil pytz freezegun requests-mock respx paho-mqtt tqdm jsonschema pyyaml packaging
- name: MyHOME test suite against this checkout
working-directory: MyHOME
run: PYTHONPATH=. python -m pytest tests -q -p no:cacheprovider
Loading