aboutsummaryrefslogtreecommitdiff
path: root/ci/docker/toolchain/Dockerfile
diff options
context:
space:
mode:
authorCorentin Le Molgat <corentinl@google.com>2021-10-25 16:06:43 +0200
committerMizux <mizux.dev@gmail.com>2021-10-28 16:24:54 +0200
commitccc3a51e4cdbc7c34ce461829b8983e2ee010f5b (patch)
treee8a65644a84c3631ab9edcd04d83d9eeb56c2775 /ci/docker/toolchain/Dockerfile
parentca84b91d34e626918857d21cf203baddd507df53 (diff)
downloadcpu_features-ccc3a51e4cdbc7c34ce461829b8983e2ee010f5b.tar.gz
ci: Add docker based test framework
* Add documentation * Add .dockerignore: minimize docker context size to improve speed * Add Makefile: to easily run various docker stages * Add a CMake sample project to check CMake install rules
Diffstat (limited to 'ci/docker/toolchain/Dockerfile')
-rw-r--r--ci/docker/toolchain/Dockerfile34
1 files changed, 34 insertions, 0 deletions
diff --git a/ci/docker/toolchain/Dockerfile b/ci/docker/toolchain/Dockerfile
new file mode 100644
index 0000000..1bf25ed
--- /dev/null
+++ b/ci/docker/toolchain/Dockerfile
@@ -0,0 +1,34 @@
+# Create a virtual environment with all tools installed
+# ref: https://hub.docker.com/_/ubuntu
+FROM ubuntu:latest AS env
+LABEL maintainer="corentinl@google.com"
+# Install system build dependencies
+ENV PATH=/usr/local/bin:$PATH
+RUN apt-get update -qq \
+&& DEBIAN_FRONTEND=noninteractive apt-get install -yq git wget libssl-dev build-essential \
+ ninja-build python3 pkgconf libglib2.0-dev \
+&& apt-get clean \
+&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
+ENTRYPOINT ["/usr/bin/bash", "-c"]
+CMD ["/usr/bin/bash"]
+
+# Install CMake 3.21.3
+RUN wget "https://cmake.org/files/v3.21/cmake-3.21.3-linux-x86_64.sh" \
+&& chmod a+x cmake-3.21.3-linux-x86_64.sh \
+&& ./cmake-3.21.3-linux-x86_64.sh --prefix=/usr/local/ --skip-license \
+&& rm cmake-3.21.3-linux-x86_64.sh
+
+FROM env AS devel
+WORKDIR /home/project
+COPY . .
+
+ARG TARGET
+ENV TARGET ${TARGET:-unknown}
+
+FROM devel AS build
+RUN cmake -version
+RUN ./scripts/run_integration.sh build
+
+FROM build AS test
+RUN ./scripts/run_integration.sh qemu
+RUN ./scripts/run_integration.sh test