# CI job image for Gitea Actions (act_runner requires Node.js in job containers).
FROM node:20-bookworm

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        ca-certificates \
        curl \
        git \
    && rm -rf /var/lib/apt/lists/*

COPY --from=docker:27-cli /usr/local/bin/docker /usr/local/bin/docker
COPY --from=ghcr.io/astral-sh/uv:0.7.0 /uv /usr/local/bin/uv

ENV UV_PYTHON_INSTALL_DIR=/opt/uv-python \
    UV_LINK_MODE=copy

COPY .python-version /tmp/.python-version
RUN uv python install "$(cat /tmp/.python-version)"

WORKDIR /app

COPY pyproject.toml uv.lock .python-version ./

ENV PATH="/app/.venv/bin:${PATH}"

RUN --mount=type=secret,id=uv_token \
    UV_INDEX_GITEA_USERNAME=ci-bot \
    UV_INDEX_GITEA_PASSWORD="$(cat /run/secrets/uv_token)" \
    uv sync --all-extras --frozen --no-install-project
