Add information about integration tests
We didn't mention zuul-cloner or the general approach for setting up an integration test, which is a very important part of the system. Change-Id: I327b65254604e880676f063baff87d017f8cf818
This commit is contained in:
parent
8619a59b1e
commit
112f97f13d
@ -345,5 +345,42 @@ pipelines. This says if an event comes in for
|
|||||||
pipeline triggers run the ``gate-new-<repositoryname>-job`` job
|
pipeline triggers run the ``gate-new-<repositoryname>-job`` job
|
||||||
against ``openstack/<repositoryname>`` in the matching pipeline.
|
against ``openstack/<repositoryname>`` in the matching pipeline.
|
||||||
|
|
||||||
|
Integration Tests
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
One of Zuul's most powerful features is the ability to perform complex
|
||||||
|
integration testing across interrelated repositories. Projects that
|
||||||
|
share one or more jobs are combined into a shared change queue. That
|
||||||
|
means that as changes are approved, they are sequenced in order and
|
||||||
|
can be tested together. It also means that if a change specifies that
|
||||||
|
it depends on another change with a "Depends-On:" header, those
|
||||||
|
changes can be tested together and merged in rapid succession.
|
||||||
|
|
||||||
|
In order to use this to its full advantage, your job should allow Zuul
|
||||||
|
to perform all of the git operations for all of the projects related
|
||||||
|
to the integration test. If you install the software under test from
|
||||||
|
the git checkouts supplied by Zuul, the test run will include all of
|
||||||
|
the changes that will be merged ahead of the change under test.
|
||||||
|
|
||||||
|
To do this, use the ``zuul-cloner`` command as follows::
|
||||||
|
|
||||||
|
sudo -E /usr/zuul-env/bin/zuul-cloner --cache-dir /opt/git \
|
||||||
|
git://git.openstack.org \
|
||||||
|
openstack/project1 \
|
||||||
|
openstack/project2 \
|
||||||
|
openstack/projectN
|
||||||
|
|
||||||
|
Where the final arguments are the names of all of the projects
|
||||||
|
involved in the integration test. They will be checked out into the
|
||||||
|
current directory (e.g., ``./openstack/project1``). If you need them
|
||||||
|
to be placed in a different location, see the ``clonemap`` feature of
|
||||||
|
``zuul-cloner`` which allows for very flexible (including regular
|
||||||
|
expressions) directory layout descriptions.
|
||||||
|
|
||||||
|
Use that command in a single Jenkins Job Builder definition that you
|
||||||
|
then invoke from all of the related projects. This way they all run
|
||||||
|
the same job (which tests the entire system) and Zuul knows to combine
|
||||||
|
those projects into a shared change queue.
|
||||||
|
|
||||||
Zuul comes with extensive `documentation <http://docs.openstack.org/infra/zuul/>`_
|
Zuul comes with extensive `documentation <http://docs.openstack.org/infra/zuul/>`_
|
||||||
too and should be referenced for more information.
|
too and should be referenced for more information.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user