# Development and Testing Container for SharedInbox
# Replaces the Nix shell environment.
FROM ghcr.io/cirruslabs/flutter:3.44.0

# Install Linux desktop build and test dependencies, Go, NodeJS, python3, and utilities
RUN apt-get update && apt-get install -y --no-install-recommends \
    clang \
    cmake \
    ninja-build \
    pkg-config \
    libgtk-3-dev \
    liblzma-dev \
    libsecret-1-dev \
    libgcrypt20-dev \
    libjsoncpp-dev \
    sqlite3 \
    iproute2 \
    netcat-openbsd \
    xvfb \
    libosmesa6 \
    libegl1 \
    lld \
    git \
    curl \
    jq \
    python3-pip \
    nodejs \
    npm \
    hugo \
    lcov \
    rsync \
    openssh-client \
    && rm -rf /var/lib/apt/lists/*

# Install Task runner
RUN curl -fsSL https://taskfile.dev/install.sh \
    | sh -s -- -b /usr/local/bin v3.48.0

# Install Dagger CLI
RUN curl -fsSL https://dl.dagger.io/dagger/install.sh \
    | DAGGER_VERSION=0.20.8 BIN_DIR=/usr/local/bin sh

# Install python packages (Play Store API clients + pre-commit)
RUN pip install --break-system-packages --no-cache-dir \
    google-api-python-client \
    google-auth-httplib2 \
    httplib2 \
    pre-commit==4.5.1

# Install acpx CLI globally
RUN npm install -g acpx@0.10.0

# Setup user "ci"
RUN useradd -m -s /bin/bash ci
USER ci
ENV HOME=/home/ci
ENV PATH=/home/ci/.pub-cache/bin:$PATH

WORKDIR /src
