# syntax=docker/dockerfile:experimental
FROM docker.hops.works/hopsworks/hwutils:0.5

# Install dependencies
RUN apt-get update && apt-get install -y \
    expect-dev \
    python3 \
    python3-pip \
    maven \
    git \
    openjdk-8-jdk \
    && rm -rf /var/lib/apt/lists/*

# Set JAVA_HOME for JDK 8
ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
ENV PATH=$JAVA_HOME/bin:$PATH

ARG MINICONDA_URL_X86_64=https://repo.anaconda.com/miniconda/Miniconda3-py312_24.7.1-0-Linux-x86_64.sh
ARG MINICONDA_URL_ARM64=https://repo.anaconda.com/miniconda/Miniconda3-py312_24.7.1-0-Linux-aarch64.sh


# Install miniconda
RUN ARCH=$(uname -m) && \
    case "$ARCH" in \
        *x86_64) MINICONDA_URL=$MINICONDA_URL_X86_64 ;; \
        *aarch64) MINICONDA_URL=$MINICONDA_URL_ARM64 ;; \
        *) echo "Unsupported architecture: $ARCH"; exit 1 ;; \
    esac && \
    curl -L $MINICONDA_URL -o /tmp/miniconda.sh && \
    bash /tmp/miniconda.sh -b -p /srv/hops/anaconda/anaconda && \
    rm /tmp/miniconda.sh

# Test conda help
RUN /srv/hops/anaconda/anaconda/bin/conda --help

# Copy source files
COPY . /tests

RUN chmod -R 777 /tests

WORKDIR /tests


RUN /srv/hops/anaconda/anaconda/bin/conda-env remove -n workflows
RUN /srv/hops/anaconda/anaconda/bin/conda create -n workflows python=3.12 -y
RUN /srv/hops/anaconda/anaconda/envs/workflows/bin/pip install pytest-timeout
RUN /srv/hops/anaconda/anaconda/envs/workflows/bin/pip install -r requirements.txt --no-cache-dir --force-reinstall

# Set environment variables
ENV HOPSWORKS_PORT=28181 
ENV HOPSWORKS_DOMAIN=hopsworks.glassfish.service.consul
ENV MYSQL_HOST=mysql.service.consul
ENV INSTALL_REQUIREMENTS=False
ENV PYTHONPATH=${home_dir}/tests:$PYTHONPATH
ENV IS_KUBE=True
ENV HOPSWORKS_TEST_USER_PASSWORD="test"
# This removes warnings on self signed certificate
ENV TRUST_CERTIFICATE=True
# Set the default command
ENTRYPOINT ["/bin/bash"]
CMD ["run_tests_on_kube.sh"]
