I have used Hudson tools for the past 2 years, so i thought why not write about it features. It is a great tool and first thing i like about Hudson is the User friendly Web interface.Hudson has lot of features but i know a very few from the user perspective that's what i will discuss here.
Before Going in to the details of Hudson ,let me describe my understanding of Continuous Integration, it is a process where the scheduled polling are done on the SCM like subversion,Git,CVS repositories for changes .If there is a change then the latest source code is checked out and the build happens,if the build fails during compilation then the committers are notified about the build failure . Once the build got completed, the tests are triggered to check the stability of the build. So it gives a quick process to check the build stability and fix it soon thus preventing the delay in product deliveries.
I have installed hudson in Redhat Linux and windows, below are the steps i did,
java -jar hudson.war --httpPort=8080 #this will make hudson to run in port 8080
Once the Hudson is up then all the setup is done via web UI itself and Hudson has tons of plugins like SCM plugins, Test report , Irc notifier, Email, Access control, Build wrappers.
Manage Hudson gives a Central configuration Management page for the Hudson Server where you can configure the Access control for Hudson, project based authorization, Irc notification, Email Notification. In my setup i run Hudson in CentOS with 4GB mem and 250GB hard disk.
I used Hudson in Master/Slave mode .Means i run Hudson server in one machine(Master) and configure individual machine as slave for it and run each job in that machine .The slave configuration is done in the Manage Node page . In windows, slave machine needs is launched via JNLP(Java Network Launching protocol) and in Linux using SSH(Secure Shell protocol) and slave machine need to have a directory dedicated to Hudson,you can also run multiple jobs in one slave)
Hudson directory structure in slave machine : ls /u1/hudson/workspace
madhu-job1 madhu-job2 madhu-job3 #I have three jobs running in this slave
Create a job in New Job page, i used to create a Build a free-style software project. After job is created configure the job by Allocating a slave to the job. Specify the repository URL in the Source Code Management section also use Poll SCM to mention how frequent the Hudson need to poll the repository.
Next Add Build Step to specify how to build the checked out source code, it has various options like Execute shell, ANT, Maven, python script , Groovy script, Windows batch command. I use Execute shell to run the build script as most of my builds are Linux based.
No comments:
Post a Comment