diff options
Diffstat (limited to 'cmake/ci/docker/amd64/Dockerfile')
-rw-r--r-- | cmake/ci/docker/amd64/Dockerfile | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/cmake/ci/docker/amd64/Dockerfile b/cmake/ci/docker/amd64/Dockerfile new file mode 100644 index 0000000..2cc3270 --- /dev/null +++ b/cmake/ci/docker/amd64/Dockerfile @@ -0,0 +1,48 @@ +# 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 . . + +FROM devel AS build +RUN cmake -version +RUN cmake -S. -Bbuild +RUN cmake --build build --target all -v +RUN cmake --build build --target install -v + +FROM build AS test +ENV CTEST_OUTPUT_ON_FAILURE=1 +RUN cmake --build build --target test -v + +# Test install rules +FROM env AS install_env +COPY --from=build /usr/local /usr/local/ + +FROM install_env AS install_devel +WORKDIR /home/sample +COPY cmake/ci/sample . + +FROM install_devel AS install_build +RUN cmake -S. -Bbuild +RUN cmake --build build --target all -v + +FROM install_build AS install_test +RUN cmake --build build --target test |