| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- # Due to bandwidth limitation, we need to keep the base image into our
- # Artifactory Docker Registry. Because we have more than one registry,
- # we need to set during build time which Artifactory Docker Registry to use.
- ARG DOCKER_REGISTRY
- FROM ${DOCKER_REGISTRY}/ubuntu:focal
- # jenkins user needs to be present to work on CI
- # User 1000 for Kubernetes
- RUN useradd -u 1000 -U -m -c Jenkins jenkins
- # install packages from official Ubuntu repo
- ENV DEBIAN_FRONTEND=noninteractive
- RUN apt-get update && \
- apt-get install --no-install-recommends -y \
- bc=1.07.1-2build1 \
- build-essential=12.8ubuntu1.1 \
- curl=7.68.0-1ubuntu2.5 \
- dos2unix=7.4.0-2 \
- git=1:2.25.1-1ubuntu3.1 \
- lib32stdc++6=10.2.0-5ubuntu1~20.04 \
- mscgen=0.20-12 \
- p7zip-full=16.02+dfsg-7build1 \
- python3=3.8.2-0ubuntu2 \
- python3-pip=20.0.2-5ubuntu1.3 \
- tar=1.30+dfsg-7ubuntu0.20.04.1 \
- unzip=6.0-25ubuntu1 \
- wget=1.20.3-1ubuntu1 \
- libxml2-utils=2.9.10+dfsg-5 \
- zip=3.0-11build1 && \
- apt-get autoremove -y && \
- apt-get autoclean -y && \
- rm -rf /var/lib/apt/lists/*
- # Create build ARGs for installer files & versions
- ARG ARMCC=ArmCompiler-5.06u7-linux.sh
- ARG ARMCLANG=ArmCompiler-6.16-linux-x86_64.sh
- ARG ARMCLANGLTM=ArmCompiler-6.6.4-linux-x86_64.sh
- ARG GCC=gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
- ARG DOXYGEN=doxygen_1.8.6-2_amd64.deb
- ARG FASTMODELS=fvp-11.12-linux-x86_64.tar.gz
- # Including dependency folder
- ARG DEPENDENCIESFOLDER=dependenciesFiles
- ARG TOOLS_PATH=/opt
- ARG INSTALLER_PATH=/tmp/dependenciesFiles
- RUN mkdir -p ${INSTALLER_PATH}
- COPY dependenciesFiles/ ${INSTALLER_PATH}
- # install & setup armcc
- RUN ${INSTALLER_PATH}/${ARMCC} --i-agree-to-the-contained-eula --no-interactive -v -d ${TOOLS_PATH}/armcc
- ENV PATH=${PATH}:${TOOLS_PATH}/armcc/bin
- ENV CI_ARMCC5_TOOLCHAIN_ROOT=${TOOLS_PATH}/armclang/bin
- # install & setup armclang
- RUN ${INSTALLER_PATH}/${ARMCLANG} --i-agree-to-the-contained-eula --no-interactive -v -d ${TOOLS_PATH}/armclang
- ENV PATH=${PATH}:${TOOLS_PATH}/armclang/bin
- ENV CI_ARMCC6_TOOLCHAIN_ROOT=${TOOLS_PATH}/armclang/bin
- # install & setup armclang ltm
- RUN ${INSTALLER_PATH}/${ARMCLANGLTM} --i-agree-to-the-contained-eula --no-interactive -v -d ${TOOLS_PATH}/armclangltm
- ENV CI_ARMCC6LTM_TOOLCHAIN_ROOT=${TOOLS_PATH}/armclangltm/bin
- # install & setup gcc
- RUN mkdir -p ${TOOLS_PATH}
- WORKDIR ${TOOLS_PATH}
- RUN tar -xvf ${INSTALLER_PATH}/${GCC}
- ENV PATH=${PATH}:${TOOLS_PATH}/gcc-arm-none-eabi-10-2020-q4-major/bin
- ENV CI_GCC_TOOLCHAIN_ROOT=${TOOLS_PATH}/gcc-arm-none-eabi-10-2020-q4-major/bin
- WORKDIR /
- # install fast models 11.12
- RUN mkdir -p ${TOOLS_PATH}/fvp/
- WORKDIR ${TOOLS_PATH}/fvp/
- RUN tar -xvf ${INSTALLER_PATH}/${FASTMODELS}
- ENV PATH=${PATH}:${TOOLS_PATH}/fvp
- WORKDIR /
- # install doxygen
- RUN dpkg -i ${INSTALLER_PATH}/${DOXYGEN}
- # install PackChk
- RUN cp ${INSTALLER_PATH}/PackChk /usr/local/bin/PackChk
- RUN chmod +x /usr/local/bin/PackChk
- # install Python requirements
- COPY requirements.txt ${INSTALLER_PATH}/
- RUN python3 -m pip install --no-cache-dir -r ${INSTALLER_PATH}/requirements.txt
- # install buildtools
- RUN python3 -m pip install --no-cache-dir -r ${INSTALLER_PATH}/buildtools/requirements.txt
- RUN mv ${INSTALLER_PATH}/buildtools ${TOOLS_PATH}
- COPY rtebuild /home/jenkins/.rtebuild
- COPY rtebuild /root/.rtebuild
- ENV PATH=${PATH}:${TOOLS_PATH}/buildtools
- # install python-matrix-runner
- # hadolint disable=DL3013
- RUN python3 -m pip install ${INSTALLER_PATH}/python-matrix-runner
- # set ARMLMD_LICENSE_FILE for ARM compilers
- ENV ARMLMD_LICENSE_FILE="7010@euhpc-lic-armlmd.euhpc.arm.com:7010@euhpc-lic03.euhpc.arm.com:7010@euhpc-lic05.euhpc.arm.com:7010@euhpc-lic07.euhpc.arm.com"
- # remove dependency folder
- RUN rm -rf ${INSTALLER_PATH}
- CMD ["bash"]
|