Build and publish RMM Docker image
This will enable us to run RMM CI in public.
Change-Id: I3ade888510696c34604a98b217d3bae5733ff2b9
Signed-off-by: Saheer Babu <saheer.babu@arm.com>
diff --git a/jammy-amd64-rmm-build/Dockerfile b/jammy-amd64-rmm-build/Dockerfile
new file mode 100644
index 0000000..b6532d3
--- /dev/null
+++ b/jammy-amd64-rmm-build/Dockerfile
@@ -0,0 +1,37 @@
+FROM trustedfirmware/ci-amd64-tf-a-ubuntu:jammy
+
+ENV RMM_TOOLS_DIR=/home/buildslave/rmm_tools
+
+RUN apt-get update && \
+ apt-get install -y libxml2-dev libxslt1-dev telnet
+
+RUN wget -qO cbmc.deb https://github.com/diffblue/cbmc/releases/download/cbmc-5.52.0/ubuntu-18.04-cbmc-5.52.0-Linux.deb \
+ && dpkg -i cbmc.deb \
+ && rm cbmc.deb
+
+# Install CMake
+RUN mkdir -p ${RMM_TOOLS_DIR} \
+ && wget -qO- https://github.com/Kitware/CMake/releases/download/v3.22.3/cmake-3.22.3-linux-x86_64.tar.gz \
+ | tar xfz - -C ${RMM_TOOLS_DIR} --strip-components=1
+
+# Install Arm GCC toolchain (aarch64-none-elf)
+RUN wget -qO- https://developer.arm.com/-/media/Files/downloads/gnu/11.2-2022.02/binrel/gcc-arm-11.2-2022.02-x86_64-aarch64-none-elf.tar.xz \
+ | tar xfJ - -C ${RMM_TOOLS_DIR} --strip-components=1
+
+# Install ninja
+RUN wget -qO ninja.zip https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-linux.zip \
+ && unzip -d ${RMM_TOOLS_DIR}/bin ninja.zip \
+ && rm ninja.zip
+
+# Install cppcheck
+RUN wget -qO- https://github.com/danmar/cppcheck/archive/refs/tags/2.7.tar.gz \
+ | tar xfz - \
+ && cd cppcheck-2.7 \
+ && cmake . \
+ && cmake --build . --target install \
+ && cd - \
+ && rm -rf cppcheck-2.7
+
+RUN python3 -m pip install --no-cache-dir gcovr
+
+ENV PATH="${RMM_TOOLS_DIR}/bin:${PATH}"
diff --git a/jammy-amd64-rmm-build/build.sh b/jammy-amd64-rmm-build/build.sh
new file mode 100755
index 0000000..311ec46
--- /dev/null
+++ b/jammy-amd64-rmm-build/build.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+set -e
+
+trap cleanup_exit INT TERM EXIT
+
+cleanup_exit()
+{
+ rm -f *.list *.key
+}
+
+export LANG=C
+
+DISTRIBUTION=$(basename ${PWD} | cut -f1 -d '-')
+ARCHITECTURE=$(basename ${PWD} | cut -f2 -d '-')
+PROJECT=$(basename ${PWD} | cut -f3 -d '-')-$(basename ${PWD} | cut -f4 -d '-')
+
+cp -a ../setup-sshd .
+
+image=trustedfirmware/ci-${ARCHITECTURE}-${PROJECT}-ubuntu:${DISTRIBUTION}${DOCKER_SUFFIX}
+docker build --pull --no-cache --tag=$image .
+echo $image > .docker-tag