jarn.jenkins 1.0b2
Buildout recipe for installing a Jenkins instance
License: BSD
Keywords: jenkins buildout

Overview
========

This is a recipe to set up and configure Jenkins_ in a Jetty_ servlet
container.

.. _Jenkins : http://jenkins-ci.org/
.. _Jetty : http://www.eclipse.org/jetty/


Note
----

The recipe is currently not compatible with Python 2.7 due to an
incompatibility in the ``iw.recipe.template`` recipe used internally.


Basic setup
-----------

A basic buildout configuration using this recipe looks like this::

    [buildout]

    parts =
        jetty-download
        jenkins-download
        jenkins

    [jetty-download]
    recipe = hexagonit.recipe.download
    url = http://download.eclipse.org/jetty/7.2.2.v20101205/dist/jetty-distribution-7.2.2.v20101205.tar.gz
    strip-top-level-dir = true

    [jenkins-download]
    recipe = hexagonit.recipe.download
    url = http://mirrors.jenkins-ci.org/war/1.397/jenkins.war
    download-only = true

    [jenkins]
    recipe = jarn.jenkins
    jetty-location = ${jetty-download:location}
    jenkins-location = ${jenkins-download:location}


This will download both Jetty and Jenkins and create an executable Jetty
environment in ``parts/jenkins``. It will also create a control script in
``bin/jenkins``. The name of the script is the name of the section.

To test the setup run ``bin/jenkins fg`` and check the console output. By
default this will run a Jetty server on port 8070. The jenkins instance is
accessible in a browser at ``http://127.0.0.1:8070/jenkins/``.

Jenkins will write all its log files into ``var/jenkins/log``. All its
configuration including jobs and past runs will go into ``var/jenkins/data``.
The directory name in ``var`` will have the name of the recipe section.


Options
-------

The recipe supports the following options:

host
    Name or IP address of the Jetty server, e.g. ``some.server.com``.
    Defaults to ``127.0.0.1``.

port
    Server port. Defaults to ``8070``.

java-opts
    Optional. Parameters to pass to the Java Virtual Machine (JVM) used to
    run Jetty. Each option is specified on a separated line.
    If you run into memory problems it's typical to pass::

        [jenkins]
        ...
        java-opts =
          -Xms512M
          -Xmx1024M
        ...

Changelog
=========

1.0b2 - 2011-03-15
------------------

- Pass `os.environ` into the Jenkins process.
  [newbery]

1.0b1 - 2011-02-13
------------------

- Renamed from `collective.recipe.hudson` to `jarn.jenkins`, following the
  Hudson to Jenkins renaming by the Jenkins community.
  [hannosch]

1.0a3 - 2010-09-10
------------------

- Added note about Python 2.7 incompatibility. Thanks to Rob Madole for
  notifying me.
  [hannosch]

- Updated example to version 1.375.
  [hannosch]

1.0a2 - 2010-03-04
------------------

- Configure the ``HUDSON_HOME`` environment variable inside the jetty.xml
  instead of the control script.
  [hannosch]

- Simplify the example buildout a bit.
  [hannosch]

1.0a1 - 2010-03-04
------------------

- Better update handling.
  [hannosch]

- Don't configure a ContextDeployer which allows us to skip the contexts
  examples cleanup.
  [hannosch]

- Added basic package documentation.
  [hannosch]

- Updated jetty configuration to match new class names caused by the move to
  the Eclipse project.
  [hannosch]

- Initial code, largely based on collective.recipe.solrinstance.
  [hannosch]