Continuous Integration with Jenkins
===================================

Each change made to Sahara core code is tested with unit and integration tests and style checks flake8.

Unit tests and style checks are performed on public `OpenStack Jenkins <https://jenkins.openstack.org/>`_ managed by `Zuul <http://status.openstack.org/zuul/>`_.
Unit tests are checked using python 2.7.

The result of those checks and Unit tests are +1 or -1 to *Verify* column in a code review from *Jenkins* user.

Integration tests check CRUD operations for Image Registry, Templates and Clusters.
Also a test job is launched on a created Cluster to verify Hadoop work.

All integration tests are launched by `Jenkins <https://sahara.mirantis.com/jenkins/>`_ on the internal Mirantis OpenStack Lab.
Jenkins keeps a pool of VMs to run tests in parallel. Even with the pool of VMs integration testing may take a while.
Jenkins is controlled for the most part by Zuul which determines what jobs are run when.
Zuul status is available by address: `Zuul Status <https://sahara.mirantis.com/zuul>`_.
For more information see: `Sahara Hadoop Cluster CI <https://wiki.openstack.org/wiki/Sahara/SaharaCI>`_.

The integration tests result is +1 or -1 to *Verify* column in a code review from *Sahara Hadoop Cluster CI* user.

You can put *sahara-ci-recheck* in comment, if you want to recheck sahara-ci jobs.
Also, you can put *recheck* in comment, if you want to recheck both jenkins and sahara-ci jobs.
