Setting up Continuous Integration on Linux server

The instructions below are for a RedHat/CentOS server but can be easily adapted for other Linux distributions.

Installing Jenkins

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+RedHat+distributions

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins

sudo service jenkins start

A jenkins user has been created, its home directory is /var/lib/jenkins

Configuring Jenkins

Installing JDK 8

Through Jenkins administration, add a JDK 8 automatic installer.

Installing Maven 3.2.2

Through Jenkins administration, add a Maven automatic installer from Apache’s site.

Installing NodeJS

Install Jenkins NodeJS plugin.

Through Jenkins administration, add a NodeJS instllation:

  • automatic installer from nodejs.org, latest stable 0.10.xx version
  • Global npm packages to install: bower grunt

This way we can easily configure different versions of NodeJS if we need it in the future.

Avoid 0.11.xx versions as there are known issues with 0.11.14.

Jenkins NodeJS plugin 0.2.1 has an issue, it proposes 0.10.33 as latest 0.10 version available from nodejs.org while on the site there is also 0. 10.35, so if you want to use latest version you’ll have to install manually:

# specify which version we want
export NODE_VERSION=0.10.35

# download
cd /tmp
wget http://nodejs.org/dist/v$NODE_VERSION/node-v0.10.35.tar.gz
tar xvfz node-v$NODE_VERSION.tar.gz

# build it and install it only locally
cd node-v$NODE_VERSION
./configure --prefix=/var/lib/jenkins/node-v$NODE_VERSION && make && make install

# Check versions of node and  npm
export PATH=/var/lib/jenkins/node-v$NODE_VERSION/bin:$PATH
node --version
# v0.10.35
npm --version
# 1.4.28

# install tools
npm install -g bower grunt-cli
bower --version
# 1.3.12
grunt --version
# 0.1.13

Make sure you update the Jenkins PATH.