Added initial docs for Jenkins.
Change-Id: I79046c3d87fed2c2b78ee9c5731db151c1ad1a33
This commit is contained in:
@@ -22,6 +22,7 @@ Contents:
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
jenkins
|
||||
gerrit
|
||||
|
||||
Indices and tables
|
||||
|
||||
47
doc/jenkins.rst
Normal file
47
doc/jenkins.rst
Normal 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
55
doc/tarmac.rst
Normal 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
|
||||
Reference in New Issue
Block a user