blob: 4ea6a2bdad5352a807e38343dba201dca3b16a50 [file] [log] [blame]
Jonatan Antoni4b0ede32021-04-29 18:26:29 +02001# Due to bandwidth limitation, we need to keep the base image into our
2# Artifactory Docker Registry. Because we have more than one registry,
3# we need to set during build time which Artifactory Docker Registry to use.
4ARG DOCKER_REGISTRY
5FROM ${DOCKER_REGISTRY}/ubuntu:focal
6
7# jenkins user needs to be present to work on CI
8# User 1000 for Kubernetes
9RUN useradd -u 1000 -U -m -c Jenkins jenkins
10
11# install packages from official Ubuntu repo
12ENV DEBIAN_FRONTEND=noninteractive
13RUN apt-get update && \
14 apt-get install --no-install-recommends -y \
15 bc=1.07.1-2build1 \
16 build-essential=12.8ubuntu1.1 \
17 curl=7.68.0-1ubuntu2.5 \
18 dos2unix=7.4.0-2 \
19 git=1:2.25.1-1ubuntu3.1 \
20 lib32stdc++6=10.2.0-5ubuntu1~20.04 \
21 mscgen=0.20-12 \
22 p7zip-full=16.02+dfsg-7build1 \
23 python3=3.8.2-0ubuntu2 \
24 python3-pip=20.0.2-5ubuntu1.3 \
25 tar=1.30+dfsg-7ubuntu0.20.04.1 \
26 unzip=6.0-25ubuntu1 \
27 wget=1.20.3-1ubuntu1 \
28 libxml2-utils=2.9.10+dfsg-5 \
29 zip=3.0-11build1 && \
30 apt-get autoremove -y && \
31 apt-get autoclean -y && \
32 rm -rf /var/lib/apt/lists/*
33
34# Create build ARGs for installer files & versions
35ARG ARMCC=ArmCompiler-5.06u7-linux.sh
36ARG ARMCLANG=ArmCompiler-6.16-linux-x86_64.sh
37ARG ARMCLANGLTM=ArmCompiler-6.6.4-linux-x86_64.sh
38ARG GCC=gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
39ARG DOXYGEN=doxygen_1.8.6-2_amd64.deb
40ARG FASTMODELS=fvp-11.12-linux-x86_64.tar.gz
41
42# Including dependency folder
43ARG DEPENDENCIESFOLDER=dependenciesFiles
44ARG TOOLS_PATH=/opt
45ARG INSTALLER_PATH=/tmp/dependenciesFiles
46RUN mkdir -p ${INSTALLER_PATH}
47COPY dependenciesFiles/ ${INSTALLER_PATH}
48
49# install & setup armcc
50RUN ${INSTALLER_PATH}/${ARMCC} --i-agree-to-the-contained-eula --no-interactive -v -d ${TOOLS_PATH}/armcc
51ENV PATH=${PATH}:${TOOLS_PATH}/armcc/bin
52ENV CI_ARMCC5_TOOLCHAIN_ROOT=${TOOLS_PATH}/armclang/bin
53
54# install & setup armclang
55RUN ${INSTALLER_PATH}/${ARMCLANG} --i-agree-to-the-contained-eula --no-interactive -v -d ${TOOLS_PATH}/armclang
56ENV PATH=${PATH}:${TOOLS_PATH}/armclang/bin
57ENV CI_ARMCC6_TOOLCHAIN_ROOT=${TOOLS_PATH}/armclang/bin
58
59# install & setup armclang ltm
60RUN ${INSTALLER_PATH}/${ARMCLANGLTM} --i-agree-to-the-contained-eula --no-interactive -v -d ${TOOLS_PATH}/armclangltm
61ENV CI_ARMCC6LTM_TOOLCHAIN_ROOT=${TOOLS_PATH}/armclangltm/bin
62
63# install & setup gcc
64RUN mkdir -p ${TOOLS_PATH}
65WORKDIR ${TOOLS_PATH}
66RUN tar -xvf ${INSTALLER_PATH}/${GCC}
67ENV PATH=${PATH}:${TOOLS_PATH}/gcc-arm-none-eabi-10-2020-q4-major/bin
68ENV CI_GCC_TOOLCHAIN_ROOT=${TOOLS_PATH}/gcc-arm-none-eabi-10-2020-q4-major/bin
69WORKDIR /
70
71# install fast models 11.12
72RUN mkdir -p ${TOOLS_PATH}/fvp/
73WORKDIR ${TOOLS_PATH}/fvp/
74RUN tar -xvf ${INSTALLER_PATH}/${FASTMODELS}
75ENV PATH=${PATH}:${TOOLS_PATH}/fvp
76WORKDIR /
77
78# install doxygen
79RUN dpkg -i ${INSTALLER_PATH}/${DOXYGEN}
80
81# install PackChk
82RUN cp ${INSTALLER_PATH}/PackChk /usr/local/bin/PackChk
83RUN chmod +x /usr/local/bin/PackChk
84
85# install Python requirements
86COPY requirements.txt ${INSTALLER_PATH}/
87RUN python3 -m pip install --no-cache-dir -r ${INSTALLER_PATH}/requirements.txt
88
89# install buildtools
90RUN python3 -m pip install --no-cache-dir -r ${INSTALLER_PATH}/buildtools/requirements.txt
91RUN mv ${INSTALLER_PATH}/buildtools ${TOOLS_PATH}
92COPY rtebuild /home/jenkins/.rtebuild
93COPY rtebuild /root/.rtebuild
94ENV PATH=${PATH}:${TOOLS_PATH}/buildtools
95
96# install python-matrix-runner
97# hadolint disable=DL3013
98RUN python3 -m pip install ${INSTALLER_PATH}/python-matrix-runner
99
100# set ARMLMD_LICENSE_FILE for ARM compilers
101ENV 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"
102
103# remove dependency folder
104RUN rm -rf ${INSTALLER_PATH}
105
106CMD ["bash"]