FROM ubuntu:jammy AS base

# Environment variables used by CI scripts
ENV ARMLMD_LICENSE_FILE=27000@flexnet.trustedfirmware.org
ENV DOCKER_PREFIX=987685672616.dkr.ecr.us-east-1.amazonaws.com
ENV LICENSE_VARIABLE=ARMLMD_LICENSE_FILE=27000@flexnet.trustedfirmware.org

ENV DEBIAN_FRONTEND=noninteractive
ENV TOOLS_DIR=/home/buildslave/tools
ENV PATH=${TOOLS_DIR}/bin:${PATH}
ENV PLANTUML_JAR_PATH=/usr/share/plantuml/plantuml.jar
ENV COMPILER_DIR=/home/buildslave/compiler
ENV GCC_7_3_1_DIR=${COMPILER_DIR}/gcc-7-3-1
ENV GCC_7_3_1_PATH=${GCC_7_3_1_DIR}/bin
ENV GCC_10_3_DIR=${COMPILER_DIR}/gcc-10-3
ENV GCC_10_3_PATH=${GCC_10_3_DIR}/bin
ENV GCC_11_2_DIR=${COMPILER_DIR}/gcc-11-2
ENV GCC_11_2_PATH=${GCC_11_2_DIR}/bin
ENV GCC_13_2_DIR=${COMPILER_DIR}/gcc-13-2
ENV GCC_13_2_PATH=${GCC_13_2_DIR}/bin
ENV GCC_14_2_DIR=${COMPILER_DIR}/gcc-14-2
ENV GCC_14_2_PATH=${GCC_14_2_DIR}/bin
ENV ARMCLANG_6_20_DIR=${COMPILER_DIR}/armclang-6-20
ENV ARMCLANG_6_20_PATH=${ARMCLANG_6_20_DIR}/bin
ENV ARMCLANG_6_21_DIR=${COMPILER_DIR}/armclang-6-21
ENV ARMCLANG_6_21_PATH=${ARMCLANG_6_21_DIR}/bin
ENV CLANG_18_1_3_DIR=${COMPILER_DIR}/clang_18_1_3
ENV CLANG_18_1_3_PATH=${CLANG_18_1_3_DIR}/bin
ENV PKG_DEPS="\
    bison \
    build-essential \
    clang-tools \
    curl \
    default-jre \
    device-tree-compiler \
    doxygen \
    exuberant-ctags \
    flex \
    g++-multilib \
    gcc-multilib \
    gdisk \
    git \
    graphviz \
    jq \
    ninja-build \
    lcov \
    libffi-dev \
    librsvg2-bin \
    libssl-dev \
    libxml-libxml-perl \
    locales \
    openjdk-11-jre-headless \
    openssh-server \
    perl \
    python3 \
    python3-pycryptodome \
    python3-dev \
    python3-psutil \
    python3-pyasn1 \
    python3-venv \
    python2.7 \
    srecord \
    sudo \
    tree \
    unzip \
    uuid-runtime \
    virtualenv \
    wget \
    zip \
"

# Can be overriden at build time
ARG BUILDSLAVE_PASSWORD=buildslave

COPY requirements_*.txt /opt/
COPY tf-*.install /tmp/
COPY setup-sshd /usr/sbin/setup-sshd

# Copy armclang toolchains
COPY ARMCompiler*.tar.gz /tmp/

RUN set -ex ;\
    echo 'locales locales/locales_to_be_generated multiselect C.UTF-8 UTF-8, en_US.UTF-8 UTF-8 ' | debconf-set-selections ;\
    echo 'locales locales/default_environment_locale select en_US.UTF-8' | debconf-set-selections ;\
    # Set Python 3 as default
    ln -s -f /usr/bin/python3 /usr/bin/python ;\
    # Set symlink for python2 if not present
    [ -L /usr/bin/python2 ] || ln -s /usr/bin/python2.7 /usr/bin/python2;\
    apt update -q=2 ;\
    apt dist-upgrade -q=2 --yes ;\
    apt install -q=2 --yes --no-install-recommends ${PKG_DEPS} ;\
    curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash ;\
    apt update -q=2 ;\
    apt install -q=2 --yes --no-install-recommends git-lfs ;\
    # Install Python requirements
    curl -s https://bootstrap.pypa.io/pip/3.5/get-pip.py -o /tmp/get-pip.py ;\
    python2 /tmp/get-pip.py ;\
    pip2 install --no-cache-dir -r /opt/requirements_python2.txt ;\
    python3 /tmp/get-pip.py ;\
    pip3 install --no-cache-dir -r /opt/requirements_python3.txt ;\
    # Setup buildslave user for Jenkins
    useradd -m -s /bin/bash buildslave ;\
    echo "buildslave:$BUILDSLAVE_PASSWORD" | chpasswd ;\
    echo 'buildslave ALL = NOPASSWD: ALL' > /etc/sudoers.d/jenkins ;\
    chmod 0440 /etc/sudoers.d/jenkins ;\
    mkdir -p /var/run/sshd ${TOOLS_DIR} ${COMPILER_DIR};\
    # Run shell script(s) to install files, toolchains, etc...
    bash -ex /tmp/tf-dependencies.install ;\
    bash -ex /tmp/tf-environment.install ;\
    # Fix permissions
    chown -R buildslave:buildslave ${TOOLS_DIR} ${COMPILER_DIR} /usr/share/plantuml ;\
    # Cleanup
    apt clean ;\
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

FROM base AS base-ci
USER buildslave

RUN set -e ;\
    # Set git default config
    git config --global user.email "ci@trustedfirmware.org" ;\
    git config --global user.name "TF CI" ;\
    git config --global color.ui "auto"

USER root

EXPOSE 22
ENTRYPOINT ["/usr/sbin/setup-sshd"]

FROM base AS base-local
ENV PATH="${PATH}:/home/buildslave/compiler/gcc-11-2/bin"
