Add-on Validation Workflow
When To Use
Use this skill when a task changes any of the following:
config.yamlorconfig.jsonDockerfile- startup/service scripts under
rootfs/ - build metadata (
build.yaml, image tags, architecture list)
Procedure
- Confirm target add-on directory exists and contains
config.yamlorconfig.json. - Initialize submodules:
git submodule update --init --recursive
- Validate config format:
- YAML add-on:
yq -e '.name, .version, .arch, .image' <addon>/config.yaml - JSON add-on:
jq -e '.name, .version, .arch' <addon>/config.json
- YAML add-on:
- Lint Dockerfile:
hadolint -c <addon>/.hadolint.yaml <addon>/Dockerfile
- Run local build precheck (example single arch):
check=no archs=--aarch64 ./build.sh <addon>
Critical Guardrails
- Do not cancel builder runs once started.
- Build and image pull phases can take 15-45 minutes per architecture.
- Prefer 60+ minute timeouts for build commands.
Completion Checklist
- Config validation passed.
- Dockerfile lint passed.
- Build command executed or a blocker is clearly reported.
- Related docs in the same add-on are updated when behavior changed.
Source: dianlight/hassio-addons — distributed by TomeVault.