Understanding what differentiates jenkins and django-jenkins
Asked Answered
F

1

15

My question is rather subjective, moderators please do not close it, for I want to know the views of experienced nerds.

I am new to deployment arena, and was doing some RTFM on jenkins, coming from python/django background I searched github to find django-jenkins.

The whole idea of CI is to have a continuous build process, so that you can revert to your last stage if build fails.

As far as I could make out, jenkins runs on a server, which runs test and deploys if all the tests pass, when code is pushed to github or some other repo. It might talk to the repo by means of polling or cron jobs.

Whereas when I looked at django-jenkins in the documentation it is mentioned

./manage.py jenkins

This means, we can add commands to settings file, test things locally and then deploy. (correct me if I am wrong)

So what differentiates it? Does django-jenkins remove any need of an additional server that uses jenkins for CI?

Please let me know, and clear me where I am wrong.

Fallible answered 20/6, 2012 at 17:29 Comment(0)
G
21

Jenkins is the actual continuous integration tool itself: it handles manual and automatic builds, deployments and can run test scripts and display reports. This is useful to see whether your tests are still passing and whether the builds are successful.

django-jenkins is a Python package for the Django web framework which provides additional tools that you can use in Jenkins. For example, it generates reports which can be read by Jenkins. You can add these commands into your build script to generate the reports.

In other words, Jenkins can be used for many different continuous integration purposes but if you happen to be building a website in Python/Django then django-jenkins provides additional functionality to make life easier.

Gemot answered 20/6, 2012 at 17:33 Comment(2)
thanks for your answer, it makes sense to me. could you further elaborate on it, from the usage POV. Say i have a very complex webapp say a CRM, in that case how do i put to use jenkins and django-jenkins. Will i need the goodness of both of them? What role will be served by each? You can edit your answer to include the above.Fallible
As I said, Jenkins provides the automatic building and testing functionality and django-jenkins contains additional functionality for Django projects. You don't have to use django-jenkins if you choose to use Jenkins, it's optional. It's up to you to evaluate your situation and decide whether you find django-jenkins useful or not.Gemot

© 2022 - 2024 — McMap. All rights reserved.