Featured post

Setup Docker slaves for Jenkins

Jenkins is the one of the primary CI tool used in industry. Jenkins provide on cross planform support and have master-slave configuration. Your slave could be any operating system. Recently docker is becoming very popular for replacement of virtualisation up to some extend.
Today I will detail out the steps needed to make dynamically slave provision via docker images.
Setting up Host for Docker You need to have your base machine either VM or hypervisor etc and need to install with all prerequisite. Lets install docker now.curl -sSL | sh

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

Go to jenkins configuration page and check the…

Code Quality Check

Every software development needs coding; without it, nothing can be developed. The quality of software depend on the way developer write code. It's an essential part of the system and the behavior of the system depends on it.  A small mistake in coding may make software vulnerable and unstable.

Quality engineering works hard to find bugs to avoid potential problems with the software. They spend numerous hours and put tremendous effort into finding any problems with the software and reporting it to the developers.

Cost of fixing the defects at various level.

The Cost of fixing defects at latter stage increases exponentially, hence, you need more hours of QA Engineers and Developers to fix and run the entire release cycle again.

If we can save some amount of time and effort from above, we can utilise resources in more productive way.
Can we make sure code is better written, tightly secure, having no potential bug and right libraries  used.

If we can implement it, we can at-least make sure…

Maven Errors - Few common Maven error and troubleshooting part 2

In this post i am going to talk about maven build troubleshooting, Here is the list few maven error and its troubleshooting.  This is the part 2 of the Troubleshooting tips.

concurrent.ExecutionException If you see following type of error in your release build. [ERROR] java.util.concurrent.ExecutionException: java.lang.NullPointerException [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. SolutionYour build job is having parellel execution, Please contact Release team to "-T -1C" get removed from the job.

Docker image building failed due to Unable to locate package If you see following type of error in non java projects release build.
[INFO] [91mE: Unable to locate package [ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.2:prepare (default-cli) on project : Maven execution failed, exit code: '1' -> [Help 1] SolutionIt is ha…

Manage Docker images on local disk

Docker is very powerful containerization technique, and it is becoming famous in short time. People are adapting and containerizing their applications for deployment.
Soon container become very heavy and consume too much of disk space, If you do not delete old images and layers you may soon run out of disk space. Here i am trying to cover the ways to regain the disk space consumed by docker images. Moving docker filesystem to bigger mount point.Usually docker keeps all temporary files related to image building and layers at /var/lib/docker This path is local to the system usually at root partition "/". You can mount a bigger disk space and move the content of /var/lib/docker to the new mount location and make sym link.  This way even docker images occupy space, will not affect  your system as it will be using some other mount location.
Remove Old docker imagesHere are few ways to remove old and unused docker images Removing stopped containerdocker ps -a | grep Exited | awk '{prin…

Authentication Error while pulling images via docker-maven-plugin

docker-maven-plugin is the great plugin provided by spotify to build docker image during maven build.

There is very strange error or behaviour I have seen during the image creation. Plugin expects that image which Dockerfile is pulling needs to be passed with username and password, which should not an essential parameter as most of the images does not need any auth to be downloaded. 
You may see this error
[INFO] Building image your-application:0.0.3 Step 1 : FROM ubunt:latest [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] your-application..................................... FAILUER [ 3.619 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 39.938 s (Wall Clock) [INFO] Finished at: 2016-06-25T16:26:06+00:00 [INFO] Final Memory: 65M/1216M [INFO] ----------------------…

Lessons Learned in Jenkins Configuration Management

Summary: Managing the configuration of Jenkins—the popular open source, continuous integration and continuous delivery application—is not trivial. Even a small change can make the platform less stable or result in problems. Vishal Sahasrabuddhe talks about his experiences using Jenkins and offers tips to take advantage of its many powerful features to automate deployment and increase productivity and product quality. (Originally published on )

Configuration management requires that you automate application build, package, and deployment. There are many tools used to accomplish these tasks, but Jenkins is one of the most popular open source frameworks employed by teams today.
Jenkins is widely used by developers to automate not only application procedures, but also continuous integration and continuous delivery. It comes with many powerful built-in features, and there are also hundreds of plugins that help it integrate with other tools and perform a variet…

Lessons Learned in Jenkins Management

Lessons Learned in Jenkins Management:

Managing the configuration of Jenkins is not trivial; even a small change can make the platform less stable or result in problems. Vishal Sahasrabuddhe talks about his real-world experiences with Jenkins and details how to take advantage of its many powerful features while avoiding possible pitfalls.