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.
To get the help simply type:
makenote: you can also use from top directory
make --directory=tools/dockerFor example to test inside an Alpine container:
make alpine-edge_testDockerfile is split in several stages.
Legend:
<platform>: amd64, arm64, riscv64.<distro>: alpine-edge, archlinux, centos, debian, fedora, opensuse, ubuntu.<lang>: cpp, dotnet, java, python.
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 yesTo test:
docker run --platform linux/arm64 --rm --init -it ubuntu:latest bash -c "uname -a"ref: