Hudson (or Jenkins) is a great tool for continuous integration. Once I learned about it and started doing continuous builds and integration for my projects using hudson, I am simply in love with it. It is so flexible, light weight and does a variety of things. With over 400 different plugins available at their update website (see Jenkins Plugins Page and Hudson Plugins Page) , you can extend your base installation of this tool to do a variety of things.
If you still evaluating why you or your company needs this tool, here are a few things I noted down that you can look at to make your decision. This is by no means a complete list of items. Hudson and Jenkins are far more powerful that just doing the items that I have listed below.
- Poll subversion for any changes and trigger a build if any new changes are available.
- Tag the release back to subversion.
- Schedule Ant or Maven builds based on cerain triggers such as code change or time,
- Trigger another build when one build completes.
- Trigger a build when Maven dependencies have been updated by Maven 3 integration
- Trigger a build when Maven SNAPSHOT dependencies have been updated externally.
- Build a project after another project is built.
- Automatically reschedule a build after a build failure using “Naginator Plugin”
- Build a project with Parameters via “Parameterized Trigger” plugins. The parameters passed could be for example, build label etc.
- Run your JUnit Tests automatically and get a nicely formatted graph
- Run the code coverage (Clover, Emma or Cobertura) automatically and get a nicely formatted graph
- Configure to run Checkstyle for capturing the code formatting issues and present the output in a nicely presented graphs.
- Look at the list of recent changes that were made on subversion by revision numbers.
- Copy the build artifacts to FTP, SCP, Network folders or other local folders.
- Run automated Tests using Cucumber
- Run automated tests using QTP
- Code Quality Metrics via “Violations” plugin.
- Run multiple builds in parallel.
- Send a list of people an email (Can be customized) when the build fails, is successful or has JUnits failing.
- Group your build jobs on different Views that are displayed as tabs.
- View quickly what builds are currently running.
- Look at the build history for build time taken, build status etc.
- Look at the console output of the build that is constantnly updated via Ajax calls.
- View the disk space usage.
- View the build time trend graphically
- Integrate Hudson Build With Sonar – via Sonar Plugin
- Run the build from web – no more kicking the builds from consoles or terminals.
- Secure the hudson access via LDAP. Users and user permissions can be added, modified or removed to finer levels.
- Run the hudson server itself as a service.
- Limit the maximum number of builds to keep on the server.
- Monitor your build via iPhone app – “Hudson Helper iPhone app”
- Monitor your build via RSS
More from: Agile Development
- Pair Programming – A Comprehensive Guide To Get You Going
- Why The Idea Of Test Driven Development (TDD) Royally Upsets Me
- 12 Basic Principles That Underlie The Agile Manifesto With Text From Original Manifesto
- 12 Practices That Make Up Extreme Programming In Agile Software Development Methodology
- How to build a specific SVN (Subversion) revision in Hudson and Jenkins
- 15 Agile Best Practices – Are you following these in your team?
- What is the format for writing an agile story card?
- How the Agile Teams and Organizations Mature and Become Fluent
- N-Things You Can Do With Continuous Integration Tools Hudson and Jenkins
- List of some popular agile methodologies of software development practices
- The chicken and pig cartoon for Agile Project Management – high resolution version recreated
- Configuring Hudson Java Memory Settings When Running It As A Service
- Why is Fibonacci series numbers used in Agile Planning and Estimations?
- What Makes An Agile Story Good? It’s the INVESTment.
- Roles and Responsibilities of Business Product Owner in Agile Teams
- 100 Plus Agile Terms – A Comprehensive List
- How to manually install Hudson or Jenkins Plugin?
- 15 plus best practices for continuous integration of your software
- Iterative development benefits in the Agile software development