Deniz’s posterous

things are impossible until they are not. 

drinking at kb taxim

Sent from my iPhone

Loading mentions Retweet

Comments [0]

parsley man

Sent from my iPhone

Loading mentions Retweet

Comments [0]

stuck in Friday night traffic

Sent from my iPhone

Loading mentions Retweet

Comments [0]

Apache continuum review and operation

As part of my targets at parkyeri this quater I decided to get a continuous integration server up and running to improve the quality of the code that gets produced and to ingest the habit of writing unit tests with the code. It is quite funny for a company like this to have minimal code coverage but still be one of the best IT companies around. Either the people here are geniuses and write perfect code (which is very unlikely) or the other companies are so bad that, that parkyeri shines even without automated testing. Anyways, the goal was to setup a continuous integration server, that would do all this test on daily/hourly basis and report the results. 

The first candidate for this goal was apache's continuum product. As we use open source projects for all applications, continuum being an apache product was one of the best candidates to try out for this task. 

Installation is quite straight forward:
Download the tar ball for your platform here and extract to a directory on your server machine. You need to have at least the Java Run time installed for continuum to work. 
Next edit the continuum.xml file in the conf/ directory and set your mail server settings for mail notification. Next run the continuum script under the bin/  directory with the command
./continuum start
This command will put the process to the background. You can check that startup was successful by issuing the command
./continuum status
You should get a response that says continuum is running.
Next point your browser to http://localhost:8080/continuum and you should be greeted with a configuration screen, after you add the admin user.

The management structure layout for continuum has Project Groups which have projects under them. Ideal for our structure at parkyeri, where we have different departments that all have different projects.

Here you can see I have created 3 project groups for Internet and E-Commerce (IET), End user services (SKS) and a test group.  In this overview you can also see that the test group has 1 build that completed, 1 that failed (yellow exclamation mark) and that the SKS group has a failed test too. There is an option to add a new project group here, because I'm logged in as the admin user. 
To view the projects in the group you just click on the Project groups name and you get the following list:

This particular group has 2 projects that i have added. One of them is a java project (CIJOE test 3) and the other is a php project. Continuum supports running ant, maven or regular shell scripts based on a cron schedule that you set. When you add a new project to a group, continuum checks out the project to a local working directory. We use SVN at parkyeri so I know that it works with SVN. I can't say anything for other source control management software though. When the cron triggers, continuum updates it local copy of the project and if any changes were committed it runs the specified ant target(s), maven goals, and/or shell script that you specify. 

As you can see from the details page I specified an extra ant target for this project. Continuum can also setup different test environments with different variables to run the tests, which is good for testing for multiple platforms etc. 
Continuum can also send notifications up on failure/success/error of the build to the specified recipients. 

User management was also added with user roles for the dev team and project manager and other people to have certain access to certain parts. 

What is lacking from my point of view is the ability to get a fine grained report of how the build went. In continuum it either fails or succeeds and nothing in between. I'd like to see which part of the build failed, how many of the unit tests passed etc, but continuum only shows me the output of the ant / bash script.
Also there isn't any integration with an issue tracking system like Trac or Jira which would have been nice.

We haven't deployed this yet to a production system, but we will be most likely in the following weeks. I still want to check out cruise control before I make my decision to which platform we'll be deploying.

Loading mentions Retweet

Comments [1]

stuck in traffic

Sent from my iPhone

Loading mentions Retweet

Comments [0]

max payne : waste of time

Sent from my iPhone

Loading mentions Retweet

Comments [0]

time to get out of bed. gonna see max payne today

Sent from my iPhone

Loading mentions Retweet

Comments [0]

suffering from an incredibly painful tooth ache

Sent from my iPhone

Loading mentions Retweet

Comments [0]

apache continuum strict password rules

last 6 passwords... come on, my online banking isn't so strict

--
dd

Loading mentions Retweet

Comments [0]

just got up what a storm outside couldn't make the marathon coz of it

Sent from my iPhone

Loading mentions Retweet

Comments [0]