django-jenkins
=============

Plug and play continuous integration with django and jenkins

Installation
------------

    $ python setup.py install

    Or, for the latest git version

    $ pip install -e git://github.com/kmmbvnr/django-jenkins.git#egg=django-jenkins


Usage
-----

Add django_jenkins to your INSTALLED_APPS list.
Configure jenkins to run the following command:

    $ ./manage.py jenkins

This will create reports/ directory with junit xml, coverage and pylint
reports.

For more details see the tutorial: http://sites.google.com/site/kmmbvnr/home/django-hudson-tutorial

Settings
--------

### `PROJECT_APPS`
if presents, it is supposed to be a white list of apps for jenkins run.
Tests, reports and coverage are generated only for the apps from this list.
You should specify --all option to ignore this settings.

### `JENKINS_TASKS`

List of jenkins tasks executed by ./manage.py jenkins command.

Default value:

    JENKINS_TASKS = ('django_jenkins.tasks.run_pylint',
                     'django_jenkins.tasks.with_coverage',
                     'django_jenkins.tasks.django_tests',)

### `JENKINS_TEST_RUNNER`
The name of the class to use for starting the test suite for `jenkins` and `jtest` commands.
Class should be inherited from `django_jenkins.runner.CITestSuiteRunner`

Tasks
-----

Here is the list of tasks prebuild with django-jenkins

### `django_jenkins.tasks.run_pylint`

Runs pylint over selected django apps.

### `django_jenkins.tasks.with_coverage`

Produces xml coverage report for jenkinx

### `django_jenkins.tasks.django_tests`

Discovers standard django test suite from test.py files

### `django_jenkins.tasks.run_jslint`

Runs jslint tools over `app/static/*/*.js` files. 
Creates pylint compatible report for jenkins

You should have `rhino` javascript interpreter installed for jslint

### `django_jenkins.tasks.run_pep8`

Runs pep8 tool over selected django apps.
Creates pylint compatible report for jenkins

You should have pep8 python package installed to run this tasks

### `django_jenkins.tasks.run_pyflakes`

Runs pyflakes tool over selected django apps.
Creates pylint compatible report for jenkins.

You should have pyflakes python package installed to run this tasks

### `django_jenkins.tasks.windmill_tests`

Discover windmill tests from app/wmtests.py files.
Each tests should be inherited from `django_jenkins.tasks.windmill_tests.WindmillTestCase`

You should have windmill python package installed to run this tasks

Changelog
-------
django-jenkins 0.11.1 2010-06-15

   * Do no produce file reports for jtest command by default
   * Ignore django apps without models.py file, as in django test command
   * Fix jslint_runner.js packaging
   * Fix coverage file filtering

django-jenkins 0.11.0 2010-04-15

   * Support pep8, pyflakes, jslint tools
   * Added jtest command
   * Allow specify custom test runner
   * Various fixes, thnk githubbers :)

django-jenkins 0.10.0 2010-02-15

   * Pluggable ci tasks refactoring
   * Alpha support for windmill tests
   * Partial python 2.4 compatibility
   * Renamed to django-jenkins

django-hudson 0.9.1 2010-12-15

   * Python 2.5 compatibility
   * Make compatible with latest pylint only

django-hudson 0.9.0 2010-10-15

   * Initial public release


Authors
-------
Mikhail Podgurskiy <kmmbvnr@gmail.com>

Special thanks, for all github forks authors.

XML Reporting Code from unittest-xml-reporting project:
    Name:    Daniel Fernandes Martins <daniel.tritone@gmail.com>
    Company: Destaquenet Technology Solutions <http://www.destaquenet.com/>

