blob: 6b6013e3559b123a3c1e5ed6d55ab683e40f1069 [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 \
Jonatan Antonid12f5c22021-07-14 08:55:54 +020015 bc \
16 build-essential \
17 curl \
18 dos2unix \
19 git \
20 lib32stdc++6 \
21 mscgen \
22 p7zip-full \
23 python3 \
24 python3-pip \
25 tar \
26 unzip \
27 wget \
28 libxml2-utils \
29 zip && \
Jonatan Antoni4b0ede32021-04-29 18:26:29 +020030 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}/
Jonatan Antonie54ebc42021-07-14 12:27:42 +020087RUN python3 -m pip install -U --no-cache-dir pip && \
88 python3 -m pip install -U --no-cache-dir -r ${INSTALLER_PATH}/requirements.txt
Jonatan Antoni4b0ede32021-04-29 18:26:29 +020089
90# install buildtools
91RUN python3 -m pip install --no-cache-dir -r ${INSTALLER_PATH}/buildtools/requirements.txt
92RUN mv ${INSTALLER_PATH}/buildtools ${TOOLS_PATH}
93COPY rtebuild /home/jenkins/.rtebuild
94COPY rtebuild /root/.rtebuild
95ENV PATH=${PATH}:${TOOLS_PATH}/buildtools
96
Jonatan Antoni4b0ede32021-04-29 18:26:29 +020097# set ARMLMD_LICENSE_FILE for ARM compilers
98ENV 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"
99
100# remove dependency folder
101RUN rm -rf ${INSTALLER_PATH}
102
103CMD ["bash"]