cmake/docs/ci.md
To test the build on various distro, I'm using docker containers and a Makefile for orchestration.
pros:
cons:
To get the help simply type:
make
note: you can also use from top directory
make --directory=cmake
For example to test Python inside an Alpine container:
make alpine_python_test
Docker is a set of platform as a service products that use OS-level virtualization to deliver software in packages called containers.
You can find official base image on the Docker registry Docker Hub
Dockerfile is split in several stages.
Vagrant is a tool for building and managing
virtual machine environments in a single workflow. It is currently used to test
FreeBSD inside a VirtualBox since we don't have any FreeBSD machine.
Vagrant call a base image a box.
Vagrant call a container a vagrant machine.
You can find official box on the Vagrant registry Vagrant Cloud
note: Currently only github MacOS runner provide virtualization support (i.e. VirtualBox).
Once vagrant and VirtualBox are installed, all commands must be run where
the Vagrantfile is located.
Generate a Vagrantfile skeleton, e.g. using the box generic/freebsd12:
vagrant init generic/freebsd12
Build and run a new vagrant machine:
vagrant up
note: If you run virtualbox you should see it.
Connect to a vagrant machine:
vagrant ssh
[vagrant@freebsd12 ~]$ ...
Execute few commands:
vagrant ssh -c "pwd; ls project ..."
Stop and delete a vagrant machine:
vagrant destroy -f