VERSION 0.8

ARG --global tag=latest
ARG --global registry=ghcr.io/wprhvso/bloat2md

all:
    BUILD +build

deps:
    FROM ghcr.io/astral-sh/uv:python3.14-trixie-slim
    WORKDIR /app
    ENV UV_COMPILE_BYTECODE=1
    ENV UV_LINK_MODE=copy
    ENV UV_PYTHON_DOWNLOADS=never
    COPY pyproject.toml uv.lock ./
    RUN uv sync --locked --no-install-project --no-dev --extra server
    SAVE ARTIFACT /app/.venv venv

build:
    FROM ghcr.io/astral-sh/uv:python3.14-trixie-slim
    WORKDIR /app
    ENV UV_COMPILE_BYTECODE=1
    ENV UV_LINK_MODE=copy
    ENV UV_PYTHON_DOWNLOADS=never
    ENV PATH=/app/.venv/bin:$PATH
    ENV PYTHONUNBUFFERED=1
    ENV PYTHONDONTWRITEBYTECODE=1
    ENV HOME=/tmp
    RUN apt-get update \
        && apt-get install --no-install-recommends -y \
            libreoffice-writer-nogui \
            libreoffice-calc-nogui \
            libreoffice-impress-nogui \
            fonts-dejavu-core \
            fonts-liberation2 \
            fonts-noto-core \
        && rm -rf /var/lib/apt/lists/*
    COPY +deps/venv /app/.venv
    COPY pyproject.toml uv.lock README.md LICENSE ./
    COPY --dir src ./
    RUN uv sync --locked --no-editable --no-dev --extra server
    ENTRYPOINT ["bloat2md"]
    SAVE IMAGE --push $registry:$tag $registry:latest
