Saturday 14 December 2013

Setup Jenkins Continuous and Automatic Build System

Jenkins is an open source tool which provides continuous integration services for software development. If you want to get more detail about Jenkins and it's history I would suggest refer this link. This post will help you installing and configuring Jenkins and creating jobs to trigger maven builds. Setting up Jenkins is not a rocket science indeed. In this post, I would like to concise the installation and configuration steps.

Installing Jenkins
Though, there are different ways to install Jenkins. But, in this post I will be describing Jenkins installation with Apache Tomcat server. Hence, please make sure that you have Apache Tomcat.   
  1. Download Jenkins war file from here and copy war into tomcat's 'webapp' folder
  2. Start the tomcat server and access Jenkins

Jenkins installation is done. Wow, so easy. Isn't it?

Configuring Jenkins
Now you have Jenkins running with you. It's time to configure the project specific environment for continuous and automatic build. This section describes about JDK, Maven and Mail Notification configuration.

Go to 'Manage Jenkins


Go to 'Manage Jenkins > Configure System'

Creating Job for Automatic and Continuous Build
So far you installed and configured  the Jenkins. It's time to create new job. Before creating new job ensure that your project is a maven project. Now, go to 'New Job' and fill the required information. believe, below screen shot tells everything which is required to configure a job. You just need to configure below points at minimum:
  • Source Code Management
  • Build Triggers
  • Build
  • Notifications

Once you save the job you will see below screen

Now click on 'Build Now' and see the 'Build History'. You will get new entry in 'Build History'. To see the build logs just hover the mouse on this build and click on 'Console Output', you can see the build logs.

Congratulations! you are done with setting up continuous build system.If you want to see that how effectively it works, just check-in any file in your project and see whether your build is triggered automatically. In case, build is failed with latest checked-in changes you must get a notification mail saying build is failed.

Last but not least, you should agree with my point 'Setting up Jenkins is not a rocket science indeed'. Shouldn't you? :) :) :)

Saturday 7 December 2013

CodeReviewer - Free Peer Code Review Tool

Peer code review is an important activity to find and fix mistakes which are overlooked during development. It helps improving both software quality as well as developers skills. Though, it’s a good process for quality improvement. But this process becomes tedious if you need to share files and send review comments through mails, you need to organize formal meetings and you need to communicate peers who are in different time zone. Here is the point, why to do this manually? Why to follow this tedious process? There are so many automated code review tools which ensure fast, easy and collaborative code review process.

My team used to follow this tedious process manually. By following this process almost for one year we realized that we should go for automated code review tools. I explored free tool for code review. After evaluating so many tools I found pretty interesting tool called CodeReviewer. I would say this is an ‘Awesome’ tool with rich documentation and great community support.

CodeReviewer is free code review tool from SmartBear. This tool provides basic features which are required in code review process like Subversion integration, user administration, event based email notification, real time chat with peers etc. If you want advanced feature you can go for commercial version ‘CodeReviewer Pro’. The yearly price for ‘CodeReviewer Pro’ subscription is around 257$ per enabled user.

'CodeReviewer' and 'CodeReviewer Pro' Features Comparison Matrix

Installation and Configuration Insights
Installing CodeReviewer is very easy task. You just download the windows setup from here and install on your system by following this link. Once installation is done follow link1 and link2 to configure CodeReviewer.

Environment Specific Configuration
Once CodeReviewer is ready to use, now it’s time to configure Server URL, integrate mail server, integrate Subversion and  configure users.

Review Life Cycle
As far as CodeReviewer’s life cycle concern, there are 5 phases of review life cycle. Below diagram describes each and every phase and there processing order. 

How to Use CodeReviewer 
You can start review by creating new review request. Note that you can't create review as admin user. You need to log-in as different user. If you want to upload file from Subversion you can follow this. Once the review request is created and sent for review, reviewers need to perform review and communicate with other participants who are participating in this review.

Questions and Answers
  • Which database is used in CodeReviewer by default?
The server installer comes with support for the hypersonic embedded database. 
  • Can I integrate my own database with CodeReviewer?
Yes. MySQL Server can be integrated with CodeReviewer. For Oracle and SQL Server you need to go for Pro. Refer this link for more detail. 
  • Can I integrate my own Bug Tracking system with CodeReviewer?
Code Reviewer can be integrated with external issue-tracking systems such as TeamTrack, Bugzilla, JIRA, and FogBugz. Refer this link for more detail. 
  • Can I take CodeReviewer Backup?
Yes. Admin user can take the CodeReviewer backup by following 'System Status > Server Backup'. Refer this link for more detail. 
  • How to restore backup?
CodeReviewer backup can be restored. Refer this link for more detail.

You might face below issue while configuring SVN Repository. 

Install the SVN client from here and configure svn.exe path in 'svn Executable' text box.

At last I would suggest you to have a look into this video. This tells about how to use CodeReviewer in Eclipse IDE itself. 

WOW, I have very nice experience with CodeReviewer. I liked this one. You will like this.Won't you?