Plug and play continuous integration with django and jenkins
Project description
Plug and play continuous integration with Django and Jenkins
Installation
From PyPI:
$ pip install django-jenkins
Or by downloading the source and running:
$ python setup.py install
For the latest git version, you need the latest pip installed first:
$ pip install git+https://github.com/pypa/pip.git $ pip install -e git+git://github.com/kmmbvnr/django-jenkins.git#egg=django-jenkins
Installation for Python 3:
$ pip install git+https://github.com/django/django.git $ pip install hg+http://hg.logilab.org/pylint $ pip install coverage $ # if required $ pip install pyflakes3k $ pip install pep8 $ # lettuce and selenium are not yet ported to python 3k
And then, upgrade the pip and install django-jenkins from git as described above.
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 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 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.
Task-specific settings: PYLINT_RCFILE
django_jenkins.tasks.with_coverage
Produces XML coverage report for Jenkins
Task-specific settings: COVERAGE_RCFILE, COVERAGE_REPORT_HTML_OUTPUT_DIR, COVERAGE_MEASURE_BRANCH, COVERAGE_EXCLUDES, COVERAGE_WITH_MIGRATIONS
django_jenkins.tasks.django_tests
Discovers standard Django test suite from test.py files
django_jenkins.tasks.dir_tests
Discover tests from all test*.py files in app subdirectories
django_jenkins.tasks.run_jshint
Runs jshint tools over <app>/static/*/*.js files. Creates Pylint compatible report for Jenkins
You should have the jshint installed
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 rhino or nodejs javascript interpreter installed for csslint
Task-specific settings: CSSLINT_INTERPRETER, CSSLINT_CHECKED_FILES
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.
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.
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.
django_jenkins.tasks.run_graphmodels
Graphs an overview of the models of the selected Django apps. Creates models.png graphic (example).
You should have django-extensions and pygraphviz installed to run this task.
Task-specific settings:
GRAPH_MODELS: A dictionary of settings for graph_models, most corresponding to the command-line options (with ‘graphmodels_’ removed): fail_without_error, disable_fields, group_models, all_applications, outputfile, layout, verbose_names, language, exclude_columns, exclude_models, inheritance
django_jenkins.tasks.lettuce_tests
Discover Lettuce tests from app/feature directories.
You should have the Lettuce Python package installed to run this task.
django_jenkins.tasks.with_local_celery
Replacement for djcelery.tests.runners.CeleryTestSuiteRunner Change settings for run Celery tasks locally.
Changelog
0.14.0 2012-12-15
Python 3 (with django 1.5) support
JSHint no longer shipped with django-jenkins. Install it with npm install jshint -g
0.13.0 2012-07-15
unittest2 compatibility
WARNING: Junit test data now stored in one junit.xml file
Support for pep8 1.3
New in-directory test discovery task
Added –liveserver option
Fixes in jslint and csslint tasks
0.12.1 2012-03-15
Added Celery task
Add nodejs support for jslint and csslint tasks
Improve js and css files selection
Bug fixes
0.12.0 2012-01-15
Django 1.3 in requirements
Windmill support was removed (Django 1.4 has a better implementation)
Ignore South migrations by default
Added SLOCCount task
Added Lettuce testing task
Added CSS Lint task
Used xml output format for jslint
Used native pep8 output format
0.11.1 2010-06-15
Do not 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
0.11.0 2010-04-15
Support pep8, Pyflakes, jslint tools
Added jtest command
Allow specify custom test runner
Various fixes, thnk githubbers :)
0.10.0 2010-02-15
Pluggable ci tasks refactoring
Alpha support for windmill tests
Partial python 2.4 compatibility
Renamed to django-jenkins
0.9.1 2010-12-15
Python 2.5 compatibility
Make compatible with latest Pylint only
0.9.0 2010-10-15
Initial public release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.