FROM ubuntu:jammy

# 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 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 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 IAR_DIR=/opt/iarsystems/bxarm
ENV IAR_PATH=${IAR_DIR}/arm/bin
ENV IAR_9_40_2_DIR=${IAR_DIR}
ENV IAR_9_40_2_PATH=${IAR_PATH}
ENV IAR_9_50_2_DIR=${IAR_DIR}
ENV IAR_9_50_2_PATH=${IAR_PATH}
ENV PATH=${TOOLS_DIR}/bin:${PATH}:${IAR_PATH}:${IAR_DIR}/common/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 \
    libcurl4 \
    libffi-dev \
    librsvg2-bin \
    libssl-dev \
    libusb-1.0-0 \
    libxml-libxml-perl \
    locales \
    openjdk-11-jre-headless \
    openssh-server \
    perl \
    python3-psutil \
    python3 \
    python3-cryptography \
    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

# IAR License
ARG IAR_LIC_NR=12345678
ARG IAR_LIC_EMAIL=donttellyou@noemail.com
ARG IAR_PACKAGE=bxarm-9.40.2.deb
ENV IAR_PACKAGE=${IAR_PACKAGE}

COPY ${IAR_PACKAGE} /tmp/
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/*

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"

# IAR Compiler set up license, DO NOT RUN WITH sudo
RUN set -ex ;\
    /opt/iarsystems/bxarm/common/bin/lightlicensemanager setup ${IAR_LIC_NR} ${IAR_LIC_EMAIL}

USER root

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