Added initial docs for Jenkins.

Change-Id: I79046c3d87fed2c2b78ee9c5731db151c1ad1a33
This commit is contained in:
Monty Taylor
2011-07-22 10:35:30 -04:00
parent 63c28c1f60
commit 33b008a965
3 changed files with 103 additions and 0 deletions

View File

@@ -22,6 +22,7 @@ Contents:
.. toctree::
:maxdepth: 2
jenkins
gerrit
Indices and tables

47
doc/jenkins.rst Normal file
View File

@@ -0,0 +1,47 @@
:title: Jenkins Configuration
Jenkins
#######
Overview
********
Jenkins is a Continuous Integration system and the central control
system for the orchestration of both pre-merge testing and post-merge
actions such as packaging and publishing of documentation.
The overall design that Jenkins is a key part of implementing is that
all code should be reviewed and tested before being merged in to trunk,
and that as many tasks around review, testing, merging and release that
can be automated should be.
Jenkis is essentially a job queing system, and everything that is done
through Jenkins can be thought of as having a few discreet components:
* Triggers - What causes a job to be run
* Location - Where do we run a job
* Steps - What actions are taken when the job runs
* Results - What is the outcome of the job
The OpenStack Jenkins can be found at http://jenkins.openstack.org
Other Components
****************
The current system uses :doc:`tarmac` to manage Launchpad Merge
Proposals for projects using bzr as a version control system. As we add
projects which are using git, or migrate projects from bzr to git, we are
using :doc:`gerrit`
Authorization
*************
Jenkins is set up to use OpenID in a Single Sign On mode with Launchpad.
This means that all of the user and group information is managed via
Launchpad users and teams. In the Jenkins Security Matrix, a Launchpad team
name can be specified and any members of that team will be granted those
permissions. However, because of the way the information is processed, a
user will need to re-log in upon changing either team membership on
Launchpad, or changing that team's authorization in Jenkins for the new
privileges to take effect.

55
doc/tarmac.rst Normal file
View File

@@ -0,0 +1,55 @@
:title: Tarmac Configuration
Tarmac
######
Overview
********
Tarmac is a Patch Queue Manager written to manage and land merge requests in
Launchpad. It is not integrated in to Jenkins, and therefore does not
trigger Jenkins jobs to determine if a branch is good. Rather, Jenkins
triggers tarmac on a periodic basis and tarmac checks the merge queue,
performs its own tests on the branch, and either passes and merges the
branch in question, or fails the branch, reports the error to the merge
request and sets the status back to Work In Progress.
Installation
************
Tarmac is installed from packages in the Tarmac PPA. It currently is
installed and runs only on the Jenkins master.
Install Tarmac PPA
------------------
::
add-apt-repository ppa:tarmac/ppa
Install Tarmac
--------------
::
apt-get install tarmac
Configuration
*************
Tarmac keeps its config file in .config/tarmac/tarmac.conf in standard ini
format. That config file is, in turn, stored in
git://github.com/openstack/openstack-ci.git
Authentication
**************
Tarmac authenticates to launchpad via oauth as the hudson-openstack user.
Operation
*********
Tarmac is a command line program, which takes a subcommand and then a branch
to land as arguments.
::
tarmac land lp:nova