mirror of
https://github.com/google/cpu_features.git
synced 2025-07-03 06:03:17 +02:00
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
This commit is contained in:

committed by
Mizux

parent
ca84b91d34
commit
ccc3a51e4c
48
ci/docker/amd64/Dockerfile
Normal file
48
ci/docker/amd64/Dockerfile
Normal file
@ -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 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
|
Reference in New Issue
Block a user