Monday, August 4, 2014

Jenkins

Jenkins is a continuous integration system which is very easy to setup and quickly comes into action. It has a nice dashboard. Jenkins can be downloaded from http://jenkins-ci.org. Jenkins comes with a set of plugins which can be enabled from the Jenkins dashboard itself. 


Continuous Integration system are very important for any Software development environment. They are like running health stats of your various projects. Jenkins supports all major Source code Management tools like CVS, Subversion, Git. The builds can be configured and can run based on cron rules. Jenkins can automatically fetch the source code and than fire the builds. It has integrated support to Ant and Maven. With it's plugin based infrastructure it can handle various kinds of build system.

Some of the important tasks a Continuous Integration system (CI System) does:

  • Check out the source code from given Source Code Control Systems (SCM)
  • Build the artifacts based on provided build instructions.
  • Run the test cases to determine the sanity of build.
  • Archive the artifacts at a configured location.
  • Deploys the artifacts on servers.
  • Send status mails to various stakeholders
  • Maintain the metrics of builds along timeline.
And last but not the least, it will provide you with a sense of quality of software products on continuous basis.

Follow the following video to see Jenkins working.


You might also want to see Tools for Software Development Management

7 comments:

  1. Thnx Lalit for such a good demo...!!!

    ReplyDelete
  2. it was very explanatory.thanks Lalit.
    i want to know the process inside the jenkins. what i mean i want to do a incremental deplyment.how can i achieve this.let me explain with example.
    i have a project which contains 10 components.i have configured jenkins so that build is happened for first time.
    next time i made changes to one of the component, i did check in that code.my doubt here is, it will process all the components or only it will consider only that component.

    ReplyDelete
    Replies
    1. It depends on your build instructions. If you have sepcified all the components, let's say in a maven pom file and the build command is 'mvn clean install', it will build all the components.

      Delete
  3. Thanks for the reply Lalit.
    i'm using Ant build file. so what changes i need to do.

    ReplyDelete
    Replies
    1. It's been a while I have used ant. If I recollect then you need to provide your ant targets. Generally it's a good idea to do a clean and build all the component if you intend to give the builds for further testing. You can define a target which invokes building all the components.

      The plugin for ant is https://wiki.jenkins-ci.org/display/JENKINS/Ant+Plugin

      Hope this helps.

      Delete
  4. hi lalit,
    i have one more doubt.how incremental build can be configured using ant, as it has in built for maven.

    ReplyDelete
    Replies
    1. I believe if you don't clean and run the build target only, ant will also build incrementally.

      Delete