system-config/doc/source/devstack-gate.rst
Monty Taylor e01ed4f066 Update some docs for opendev
There's a lot of these, so doing them in chunks. This fixes
the custom roles.

Remove the git and jjb docs, since we don't use them anymore.

Change-Id: I0c5b74f7b73315dac93bce6be0d920cddb94fb58
2019-04-20 09:41:45 -07:00

77 lines
3.0 KiB
ReStructuredText

:title: Devstack Gate
.. _devstack-gate:
.. warning::
devstack-gate is deprecated in favor of Zuul v3 native jobs defined
in the devstack repo itself. This document describes how devstack-gate
works as there are still legacy jobs using it.
Devstack Gate
#############
Devstack-gate is a collection of scripts used by the OpenStack CI team
to test every change to core OpenStack projects by deploying OpenStack
via devstack on a cloud server.
At a Glance
===========
:Projects:
* https://opendev.org/openstack/devstack-gate
:Bugs:
* https://storyboard.openstack.org/#!/project/712
:Resources:
* `Devstack-gate README <https://opendev.org/openstack/devstack-gate/src/branch/master/README.rst>`_
Overview
========
All changes to core OpenStack projects are "gated" on a set of tests
so that it will not be merged into the main repository unless it
passes all of the configured tests. Most projects require unit tests
with pep8 and several versions of Python. Those tests are all run only
on the project in question. The devstack gate test, however, is an
integration test and ensures that a proposed change still enables
several of the projects to work together. Any proposed change to the
configured set of projects must pass the devstack gate test.
Obviously we test nova, glance, keystone, horizon, neutron and their
clients because they all work closely together to form an OpenStack
system. Changes to devstack itself are also required to pass this test
so that we can be assured that devstack is always able to produce a
system capable of testing the next change to nova. The devstack gate
scripts themselves are included for the same reason.
How It Works
============
The devstack test starts with an essentially bare virtual machine
made available by :ref:`nodepool` and prepares the testing
environment. This is driven by the devstack-gate repository which
holds several scripts that are run by Zuul.
When a proposed change is approved by the core reviewers, Zuul
triggers the devstack gate test itself. This job runs on one of the
previously configured nodes and invokes the devstack-vm-gate-wrap.sh
script which checks out code from all of the involved repositories, and
merges the proposed change. That script then calls devstack-vm-gate.sh
which installs a devstack configuration file, and invokes devstack. Once
devstack is finished, it runs Tempest, which performs integration testing.
After everything is done, devstack-gate copies and formats all of the logs
for archival. Zuul then copies these logs to the log archive.
How to Debug a Devstack Gate Failure
====================================
Instructions for debugging a failure can be found in the
`Devstack-gate README <https://opendev.org/openstack/devstack-gate/src/branch/master/README.rst>`_
Developer Setup
===============
If you'd like to work on the devstack-gate scripts and test process,
see the `Devstack-gate README <https://opendev.org/openstack/devstack-gate/src/branch/master/README.rst>`_
for specific instructions.