# 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 \
        docker.io \
        git \
    && rm -rf /var/lib/apt/lists/*

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

ENV UV_PYTHON_INSTALL_DIR=/opt/uv-python \
    UV_PYTHON=3.12 \
    UV_LINK_MODE=copy \
    PATH="/app/.venv/bin:${PATH}"

RUN uv python install 3.12

WORKDIR /app

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

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
