Continuous integration for Siconos project#
A git push into siconos github will launch travis (on github) and jenkins (ci-inria) process, as described in .travis.yml file (for both travis and jenkins).
The following process will be executed on a worker:
git clone siconos from github
create build dir
run in build dir:
../CI/driver.py --run --root-dir=..
For Travis, the ‘worker’ is the default one, provided by github-travis service. The task executed is ‘default’ defined in tasks.py. The ouput can be checked here : https://travis-ci.org/siconos/siconos
For Jenkins, the ‘worker’ is one of the ‘nodes’ available on Jenkins interface, e.g. siconos—vm0, siconos—vm1 … The executed tasks are those listed in tasks.py in the dictionnary known_tasks, for the chosen hostname (i.e. node name). For example, if
known_tasks = {'siconos---vm0':
(siconos_fedora_latest,
siconos_gcc_asan,
'siconos---vm1':
(siconos_documentation,
siconos_numerics_only,
then tasks siconos_fedora_latest and siconos_gcc_asan will be executed on node vm0, while siconos_documentation and siconos_numerics_only will be executed on vm1.
Example of output: https://ci.inria.fr/siconos–/job/continuous3/lastSuccessfulBuild/console
Notice that this is equivalent to run, on another worker:
./driver.py --run --root-dir=.. --tasks=siconos_documentation,siconos_numerics_only
To check what will be executed by the command above, just try:
./driver.py --dry-run --run --root-dir=.. --tasks=siconos_documentation,siconos_numerics_only
The output will look like:
Would call:
- cmake -DMODE=Continuous -DCI_CONFIG=with_documentation -DWITH_DOCKER=1 -DBUILD_CONFIGURATION=Release -DDOCKER_DISTRIB=ubuntu:16.10 -DDOCKER_TEMPLATES=build-base,gcc,gfortran,gnu-c++,lpsolve,python-env,documentation -DDOCKER_TEMPLATE=gcc-openblas-lapacke-documentation -DDOCKER_PROJECT_SOURCE_DIR=/home/perignon/Softs/siconos/. -DDOCKER_SHARED_DIRECTORIES= /home/perignon/Softs/siconos/./CI
- make - ki target,
for target in docker-build docker-cmake docker-make docker-make-install docker-make-doc docker-make-upload
both from path _ubuntu-16.10_with_documentation
Would call:
- cmake -DMODE=Continuous -DCI_CONFIG=no_cxx -DWITH_DOCKER=1 -DBUILD_CONFIGURATION=Release -DDOCKER_DISTRIB=ubuntu:16.10 -DDOCKER_TEMPLATES=build-base,gcc,gfortran,lpsolve,python-env -DDOCKER_TEMPLATE=openblas-lapacke -DDOCKER_PROJECT_SOURCE_DIR=/home/perignon/Softs/siconos/. -DDOCKER_SHARED_DIRECTORIES= /home/perignon/Softs/siconos/./CI
- make - ki target,
for target in docker-build docker-ctest
both from path _ubuntu-16.10_no_cxx
Which means that (for numerics_only), in dir _ubuntu-16.10_no_cxx
the ‘cmake -DMODE …’ line will be executed to configure the ci project and its targets
The following targets will be executed: * make docker-build, to create a docker image, based on ubuntu 16.10 with packages gcc, … will be created, with some associated volumes * make docker-ctest : call cmake, make, make test on Siconos sources inside a docker container, based on the image created with make docker-build.
A report will be sent to siconos cdash.
For details on the description of a task, check How to add and test a new continuous integration task for Siconos project.