# syntax=docker/dockerfile@sha256:2780b5c3bab67f1f76c781860de469442999ed1a0d7992a5efdf2cffc0e3d769 # Automatically generated by hassfest. # # To update, run python3 -m script.hassfest -p docker FROM python:3.14.4-alpine ENV \ UV_SYSTEM_PYTHON=true \ UV_EXTRA_INDEX_URL="https://wheels.home-assistant.io/musllinux-index/" SHELL ["/bin/sh", "-o", "pipefail", "-c"] ENTRYPOINT ["/usr/src/homeassistant/script/hassfest/docker/entrypoint.sh"] WORKDIR "/github/workspace" COPY --parents requirements.txt homeassistant/ script /usr/src/homeassistant/ # Uv creates a lock file in /tmp RUN --mount=type=tmpfs,target=/tmp \ --mount=type=bind,source=requirements_test.txt,target=/tmp/requirements_test.txt,readonly \ --mount=type=bind,source=requirements_test_pre_commit.txt,target=/tmp/requirements_test_pre_commit.txt,readonly \ # Required for PyTurboJPEG apk add --no-cache libturbojpeg \ # Install uv at the version pinned in the requirements file && pip install --no-cache-dir "uv==$(awk -F'==' '/^uv==/{print $2}' /usr/src/homeassistant/requirements.txt)" \ && uv pip install \ --no-build \ --no-cache \ -c /usr/src/homeassistant/homeassistant/package_constraints.txt \ -r /usr/src/homeassistant/requirements.txt \ "pipdeptree==$(awk -F'==' '/^pipdeptree==/{print $2}' /tmp/requirements_test.txt)" \ "tqdm==$(awk -F'==' '/^tqdm==/{print $2}' /tmp/requirements_test.txt)" \ "ruff==$(awk -F'==' '/^ruff==/{print $2}' /tmp/requirements_test_pre_commit.txt)" LABEL "name"="hassfest" LABEL "maintainer"="Home Assistant " LABEL "com.github.actions.name"="hassfest" LABEL "com.github.actions.description"="Run hassfest to validate standalone integration repositories" LABEL "com.github.actions.icon"="terminal" LABEL "com.github.actions.color"="gray-dark"