1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
.. _about_ci:
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
.. code-block:: python
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 :ref:`adding_ci_task`.
|