1.3 KiB
1.3 KiB
CI: Makefile/Docker testing
To test the build on various distro, we are using docker containers and a Makefile for orchestration.
pros:
- You are independent of third party CI runner config (e.g. github actions runners).
- You can run it locally on any unix system.
- Most CI provide runner with docker and Makefile installed.
cons:
- Only GNU/Linux distro supported.
- Could take few GiB (~50 GiB for all distro and all languages)
- ~500MiB OS + C++/CMake tools,
- ~150 MiB Python, wheel.
Usage
To get the help simply type:
make
note: you can also use from top directory
make --directory=tools/docker
Example
For example to test inside an Alpine container:
make alpine-edge_test
Docker layers
Dockerfile is split in several stages.
Docker aarch64 on x86_64 machine
You can build and run aarch64 docker container on a x86_64 by enabling qemu
support:
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
To test:
docker run --platform linux/arm64 --rm --init -it ubuntu:latest bash -c "uname -a"
ref: