mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-12-10 00:39:22 -06:00
Refactor wheel building to use the new `local-wheels-repo-path` and move wheels building into a separate CI job. Wheels are only published on published (i.e. release or merged dev), for PR builds they are passed as artifacts to the build job instead.
56 lines
1.4 KiB
Docker
56 lines
1.4 KiB
Docker
ARG BUILD_FROM
|
|
FROM ${BUILD_FROM}
|
|
|
|
ENV \
|
|
S6_SERVICES_GRACETIME=10000 \
|
|
SUPERVISOR_API=http://localhost \
|
|
CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1 \
|
|
UV_SYSTEM_PYTHON=true
|
|
|
|
ARG \
|
|
COSIGN_VERSION
|
|
|
|
# Install base
|
|
WORKDIR /usr/src
|
|
RUN \
|
|
set -x \
|
|
&& apk add --no-cache \
|
|
findutils \
|
|
eudev \
|
|
eudev-libs \
|
|
git \
|
|
libffi \
|
|
libpulse \
|
|
musl \
|
|
openssl \
|
|
yaml \
|
|
\
|
|
&& curl -Lso /usr/bin/cosign "https://github.com/home-assistant/cosign/releases/download/${COSIGN_VERSION}/cosign_${BUILD_ARCH}" \
|
|
&& chmod a+x /usr/bin/cosign \
|
|
&& pip3 install uv==0.8.9
|
|
|
|
# Install requirements
|
|
RUN \
|
|
--mount=type=bind,source=./requirements.txt,target=/usr/src/requirements.txt \
|
|
--mount=type=bind,source=./wheels,target=/usr/src/wheels \
|
|
if ls /usr/src/wheels/musllinux/* >/dev/null 2>&1; then \
|
|
LOCAL_WHEELS=/usr/src/wheels/musllinux; \
|
|
echo "Using local wheels from: $LOCAL_WHEELS"; \
|
|
else \
|
|
LOCAL_WHEELS=; \
|
|
echo "No local wheels found"; \
|
|
fi && \
|
|
uv pip install --compile-bytecode --no-cache --no-build \
|
|
-r requirements.txt \
|
|
${LOCAL_WHEELS:+--find-links $LOCAL_WHEELS}
|
|
|
|
# Install Home Assistant Supervisor
|
|
COPY . supervisor
|
|
RUN \
|
|
uv pip install --no-cache -e ./supervisor \
|
|
&& python3 -m compileall ./supervisor/supervisor
|
|
|
|
|
|
WORKDIR /
|
|
COPY rootfs /
|