Colour formatting - Jenkins Console


Jenkins is the main CI tool used in Software industry. This is the backbone tool for all CI and CD implementation, Build - release and deployment methods. With the help of 100s of plugin available around the jenkins, We can achieve so much of automation around build process including build/deployment pipeline, notification, analysis, pre and post build action etc.

Jenkins has tremendous power to perform great amount of work around the core build process. Many time we write script in pre and post build action to perform many tasks which is becoming very command and necessary for automation.

But the main limitation in running shell script is that it's very difficult to make it more human readable for errors and make it fancy.

Today i am going to cover some steps to make the output of shell script colour formatted.

Jenkins Configuration Steps


  • First install following jenkins plugin
https://wiki.jenkins-ci.org/display/JENKINS/AnsiColor+Plugin

  • Go to jenkins configuration page and check the ANSI colour config. You will find or have to setup the xterm like following.

  • Edit the desired job via job configuration page and make sure to check the box for "Color ANSI Console Output" like below
Make sure you choose xterm option as you have already configured it in ANSI color configuration.

Script changes

Now, You will have to handle the defining and modifying script to have colour coding configuration.

Example

This is the code

==============
echo ""
echo "=======Information============"
echo ""
echo "*** Some text here ***"
echo "INFO: Information goes here."
echo ""
echo "Please check document"
echo "---------------------------"
echo ""
echo "=====End of Info==========="
echo ""
=============

Output

=======Information============
*** Some text here  ***
INFO: Information goes here.
Please check document
---------------------------

=====End of Info===========


Lets make it coloured


Code ->

===============
#!/bin/bash

#Colour Config
RED='\033[0;31m'
NC='\033[0m'
CYAN='\e[36m'
BLUE='\e[34m'

echo -e ""
echo -e "${CYAN}=======Information============"
echo -e ""
echo -e "*** Some text here  ***${NC}"
echo -e "${BLUE}INFO: Information goes here.${BLUE}"
echo -e ""
echo -e "${RED}Please check document"
echo -e "---------------------------${NC}"
echo -e ""
echo -e "${CYAN}=====End of Info===========${CYAN}"
echo -e ""
================
Output ->


=======Information============
*** Some text here  ***
INFO: Information goes here.
Please check document
---------------------------

=====End of Info===========

Explanation - 

Following are the colour pattern for different colour

#Colour Config
RED='\033[0;31m'  #this is for red
NC='\033[0m'      #this is for no colour
CYAN='\e[36m'     #this is for cyan colour

BLUE='\e[34m'     #this is for blue colour
Above is the initialisation of colour variables which we will be using.

echo -e "${CYAN}=======Information============"
by adding ${CYAN} we are initialising the colour pattern and next text will be of this colour.

echo -e "*** Some text here  ***${NC}"
Above ${NC} will stop the colour config and make no colour.

Similarly all other colours are getting initialised and being stopped by ${NC}.


For more colour configuration and patter please refer this




Popular posts from this blog

Manage Docker images on local disk

Gradle or Maven - A Dilemma

Setup Docker slaves for Jenkins