Tag Archives: Continuous Integration

Eureka! – 2014 Review

Spending most of my time working for Lane Crawford last year. A very good experience to train up myself especially in Continuous Integration and systems/application monitoring~ Thanks Ronnie for giving me a chance to work with him again and also meet a interesting team in LC.

Other than tech stuff like Puppet, Django and Dashing etc. I think the most important thing i learn is about the goal of adopting Continuous Integration. In that past, i always thought that CI is about automating tedious steps and reduce any prone to human error. But now i realize that other than these practical purposes, CI also helps to promote team work with your colleagues which, for me, is very important in a working environment. And that may be the reason why i love working on CI project so much as i am always looking forward to working in a harmonic and funny team.

All the best in 2015!

  • 2014 Jan – 31,102
  • 2014 Feb – 32,281
  • 2014 Mar – 34,303
  • 2014 Apr – 33,524
  • 2014 May – 43,786
  • 2014 Jun – 60,785
  • 2014 Jul – 70,082
  • 2014 Aug – 64,341
  • 2014 Sep – 60,157
  • 2014 Oct – 53,798
  • 2014 Nov – 59,925
  • 2014 Dec – 56,679
  • 2014 Total – 600,763

Ant – Execute Grunt and fail it on error

I want to execute a Grunt build in an Ant build project. This could be done by using <exec>.

<?xml version="1.0" encoding="UTF-8"?>
<project name="Ant Called Grunt" default="grunt" basedir=".">
  <target name="grunt">
    <exec executable="grunt" dir="${basedir}">
      <arg value="build"/>


It works quite well, but then i realize if there is error in the grunt execution, Ant will still mark the Ant build successful and this may lead to some downstream failure in a continuous integration workflow.
Continue reading Ant – Execute Grunt and fail it on error

Puppet – Automate New Relic Server Monitor Agent Installation

This is an example to install the newrelic-sysmond package on the Puppet Agent.

class system::newrelic-sysmond ($licensekey) {
  package { "newrelic-sysmond": ensure => installed, }

  exec { 'Insert newrelic license key':
    command => "nrsysmond-config --set license_key=$licensekey",
    require => Package['newrelic-sysmond'],
    creates => '/etc/newrelic/key_added',

  exec { 'Restart newrelic system monitor':
    command => "/etc/init.d/newrelic-sysmond start",
    require => Exec['Insert newrelic license key'],
    creates => '/etc/newrelic/key_added',

  exec { 'Create the key_added file':
    command => "echo key_added > /etc/newrelic/key_added",
    require => Exec['Restart newrelic system monitor'],
    creates => '/etc/newrelic/key_added',


Done =)

Jenkins – Setup a simple Ant build project

Jenkins, previously named as Hudson, is a continuous integration tool just like CruiseControl. It has been almost 4 years since i started learning Maven which made me fall in love about best practice. Deployment and testing automation is really fun and finally i got a chance to play it again.

In this article, i would show you how to setup a simple Ant build project in Jenkins. Before we start, please refer to the simple Java project example in the post below.


1. Download and install Jenkins.
Continue reading Jenkins – Setup a simple Ant build project

Rails – Integrate Autotest and RSpec in Linux

I am learning Rails 3 @ Ruby on Rails Tutorial by Michael Hartl. A very nice and detail tutorial with many examples for beginners. Highly recommended.

But i got some problems when i tried to setup the Autotest for the RSpec framework. Autotest is a continuous testing tool which run the test suite automatically based on the files you have changed. RSpec is a Behavior Driven Development (BDD) framework for Ruby. After a few hours of struggling, i finally made it work.

1. Create a new Rails project without the default Test::Unit framework.

  • rails new sample_app -T

Continue reading Rails – Integrate Autotest and RSpec in Linux

Maven + SVN + CruiseControl @ 1

The need of management is always true everywhere — a company, an application as well as yourself. As a programmer. i have been involved in some messy IT projects which have no management at all. Actually this is very common in HK where local companies only want you to complete the tasks before deadline. In such a busy city, seems that quality means nothing and changes come everyday.
Continue reading Maven + SVN + CruiseControl @ 1