Files
gronod e6b6968b5e
Validate add-ons / YAML and layout (pull_request) Failing after 26s
Validate add-ons / emby-mcp Go (pull_request) Failing after 57s
Validate add-ons / openai-codex-proxy (pull_request) Successful in 1m47s
Validate add-ons / n95-mqtt-bridge pin and upstream tests (pull_request) Failing after 44s
ci: add Gitea Actions validation for add-ons
Run YAML/config checks, emby-mcp gofmt/vet/build/test, proxy
entrypoint syntax, and n95 upstream pin + go test on push and PR
to develop/main.
2026-09-25 20:17:08 +00:00

44 lines
2.0 KiB
Markdown

# Repository guidance
This is **Gronod's Home Assistant Add-Ons** — a Home Assistant add-on
repository. Each top-level directory is one add-on.
## Layout conventions
- Add-on directory names use hyphens and mirror the add-on slug:
`emby-mcp/` ↔ slug `emby_mcp`, `openai-codex-proxy/` ↔ slug
`openai_codex_proxy` (config.yaml slugs allow `[a-z0-9_]` only).
- Each add-on contains: `config.yaml`, `Dockerfile`, `README.md`, `DOCS.md`,
`CHANGELOG.md`, `icon.png`, `logo.png`; `build.yaml`/`rootfs/` as needed.
- `README.md` = decision content (what it is, features, requirements,
install summary). `DOCS.md` = installation, configuration, usage,
troubleshooting — the file shown in the add-on's Documentation tab.
- `repository.yaml` at the root defines the repo display name/URL.
## Hostname rule
Supervisor names add-ons `{sha1(repo_url)[:8]}-{slug-with-hyphens}`.
For `https://git.i3omb.com/gronod/ha-gronod-addons` the prefix is
`8e663231` (e.g. `8e663231-emby-mcp`). If the repo URL changes, the hash
changes and every `{hash}-{slug}` reference in docs must be updated.
(Pre-rename installs using `ha-emby-mcp` keep hash `c5cb4244`.)
## Verification
Gitea Actions (`.gitea/workflows/validate.yml`) runs on push/PR to
`develop` and `main`. Enable Actions on the repository and register a
runner labelled `ubuntu-latest`.
- emby-mcp (Go): `cd emby-mcp && go build ./... && go vet ./... && go test ./...`
(see `emby-mcp/AGENTS.md`; the `internal/mcphttp` end-to-end tests are
environment-sensitive and may time out on some machines)
- YAML files: `python3 -c 'import yaml,sys; yaml.safe_load(open(sys.argv[1]))' <file>`
- openai-codex-proxy: `node --check openai-codex-proxy/rootfs/entrypoint.js`
- n95-mqtt-bridge: `build.yaml` / Dockerfile `UPSTREAM_REF`+`UPSTREAM_COMMIT`
must match, and `go test ./...` on that tagged upstream clone
## Notes
- The Go module `git.i3omb.com/gronod/emby-mcp` and its container image are
published from the separate `gronod/emby-mcp` repo — do not repoint them.