From a904d96d919e70668529466477c3ded22f5b3dd4 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 9 Jul 2026 03:55:17 +0000 Subject: [PATCH 1/2] Stabilize HACS validation CI Drop the nightly cron that was failing on upstream raw.githubusercontent.com flakes, pin hacs/action to a known SHA, and verify manifest.json locally before the HACS check so real packaging issues fail clearly. Co-authored-by: Anatoliy --- .github/workflows/validate.yml | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 8334a26..0df3fe6 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -4,8 +4,6 @@ on: push: branches: [main] pull_request: - schedule: - - cron: "0 0 * * *" workflow_dispatch: permissions: @@ -19,8 +17,27 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Verify integration manifest + run: | + set -euo pipefail + manifest="custom_components/openspeedtest_cli/manifest.json" + test -f "$manifest" + python3 - <<'PY' + import json + from pathlib import Path + + data = json.loads(Path("custom_components/openspeedtest_cli/manifest.json").read_text()) + required = ("domain", "name", "documentation", "codeowners", "iot_class", "version") + missing = [key for key in required if key not in data] + if missing: + raise SystemExit(f"manifest.json missing keys: {', '.join(missing)}") + if data["domain"] != "openspeedtest_cli": + raise SystemExit(f"unexpected domain: {data['domain']}") + print(f"manifest ok: domain={data['domain']} version={data['version']}") + PY + - name: HACS Action - uses: hacs/action@main + uses: hacs/action@1ebf01c408f29afcb6406bd431bc98fd8cbb15aa with: category: integration From 73e03ec9c7c914bdd36bdc149f2b4d251fe61476 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 9 Jul 2026 03:55:28 +0000 Subject: [PATCH 2/2] docs: note Validate workflow no longer runs daily Co-authored-by: Anatoliy --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 40693ff..d2cdcea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -57,7 +57,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `brand/icon@2x.png` (512×512) - `brand/logo.png` (256×128) - `brand/logo@2x.png` (512×256) -- GitHub Actions: HACS validation and Hassfest on every push, PR and daily. +- GitHub Actions: HACS validation and Hassfest on every push and PR. - Automatic GitHub release when pushing a `v*` tag. - `CHANGELOG.md`.