Skip to main content
django-jenkins
==============

Plug and play continuous integration with Django and Jenkins

.. image:: https://requires.io/github/kmmbvnr/django-jenkins/requirements.png?branch=master
:target: https://requires.io/github/kmmbvnr/django-jenkins/requirements/?branch=master

.. image:: https://pypip.in/d/django-jenkins/badge.png
:target: https://crate.io/packages/django-jenkins

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

From PyPI::

$ pip install django-jenkins

Or by downloading the source and running::

$ python setup.py install

Latest git version (django 1.7 compatible)::

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

Installation for Python 3::

Works out of the box


Usage
-----

Add ``'django_jenkins'`` to your ``INSTALLED_APPS`` list.
Configure Jenkins to run the following command::

$ ./manage.py jenkins --enable-coverage

This will create reports/ directory with junit xml, Coverage and Pylint
reports.

For more details see the generic tutorial: https://sites.google.com/site/kmmbvnr/home/django-jenkins-tutorial
or tutorial for running django-jenkins on ShiningPanda CI https://docs.shiningpanda.com/tutorials/multi-databases/project.html

Settings
--------

- ``PROJECT_APPS``

If present, it is supposed to be a list/tuple of django apps for Jenkins to run.
Tests, reports, and coverage are generated only for the apps from this list.
You should specify --all option to ignore this setting.

- ``JENKINS_TASKS``

List of Jenkins reporters executed by ``./manage.py jenkins`` command.

Default value::

JENKINS_TASKS = ()

- ``JENKINS_TEST_RUNNER``

The name of the class to use for starting the test suite for ``jenkins`` command.
Class should be inherited from
``django_jenkins.runner.CITestSuiteRunner``


Reporters
-----

Here is the reporters prebuild with django-jenkins

- ``django_jenkins.tasks.run_pylint``

Runs Pylint_ over selected Django apps.

Task-specific settings: ``PYLINT_RCFILE``

.. _Pylint: http://www.logilab.org/project/pylint

- ``django_jenkins.tasks.run_csslint``

Runs CSS lint tools over `app/static/*/*.css` files.
Creates CSS Lint compatible report for Jenkins

You should have the pylint package installed


- ``django_jenkins.tasks.run_pep8``

Runs pep8 tool over selected Django apps.
Creates Pylint compatible report for Jenkins

You should have pep8_ python package (>=1.3) installed to run this task.

Task-specific settings: ``PEP8_RCFILE``

.. _pep8: http://pypi.python.org/pypi/pep8

- ``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 task.

.. _Pyflakes: http://pypi.python.org/pypi/pyflakes

- ``django_jenkins.tasks.run_flake8``

Runs flake8 tool over selected Django apps.
Creates Pylint compatible report for Jenkins.

You should have flake8_ python package installed to run this task.

.. _flake8: http://pypi.python.org/pypi/flake8

- ``django_jenkins.tasks.run_sloccount``

Runs SLOCCount_ tool over selected Django apps.
Creates sloccount plugin compatible report for Jenkins.

You should have the SLOCCount program installed to run this task.

.. _SLOCCount: http://www.dwheeler.com/sloccount/


Changelog
---------

0.16.0 2014-07-15
~~~~~~~~~~~

* Django 1.7 compatibility
* Support for all standard django test runner options
* Migrations now our friends and checked by all linters, `south_migrations` are ignored
* ``django_jenkins.tasks.with_coverage`` depricated, use command line option instead `./manage.py jenkins --enable-coverage`
* ``django_jenkins.tasks.run_graphmodels`` removed
* ``django_jenkins.tasks.with_local_celery`` removed
* Ability to run linters (pep8/pyflakes/pylint/csslint/jshint) from command line without tests removed (feel free to PR it back, if you need them)


Contribution guide
~~~~~~~~~~~~~~~~~~

* Set up local jenkins
* Set up django-jenkins::

npm install jshint
npm install csslint
PATH=$PATH:$WORKSPACE/node_modules/.bin
tox

* Ensure that everythig works
* Modify the code
* Ensure that everythig works again
* Fix pep8/pyflakes errors and minimize pylint's warninigs
* Pull request!

Authors
-------
Created and maintained by Mikhail Podgurskiy <kmmbvnr@gmail.com>

Contributors: https://github.com/kmmbvnr/django-jenkins/graphs/contributors

Special thanks, for all github forks authors for project extensions ideas and problem identifications.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-jenkins-0.16.0.tar.gz (18.3 kB view details)

Uploaded Source

File details

Details for the file django-jenkins-0.16.0.tar.gz.

File metadata

File hashes

Hashes for django-jenkins-0.16.0.tar.gz
Algorithm Hash digest
SHA256 2e7c0b352e0c90fa7f02dba4ca9c876a9f00f987750d7a5d09038ed6e5559a58
MD5 1253c25a981953640687f295ffaff4c7
BLAKE2b-256 6df38719e913555d7c53a610e12a221402385ce4c0a52dc4196d68ea7cb4b942

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page