Background: I work at an IT solutions and services company in Kuala Lumpur. For my Jenkins user story, I thought I’d share a start-up project we created for a foreign resources application. We wanted to achieve a faster and more reliable deployment that provided more manageable product releases — an automated system that can pick up and build the code from our Maven repository and deploy it directly to our Tomcat servers. This was proving to be complex because we have a different Git repository for each module.
Goals: End-to-end integration for a management process.
"Jenkins eased the build and deployment process of our project. The current Jenkins solution feature we used is the easiest configuration and it surely served the purpose."
Solution & Results: I configured a Jenkins freestyle project for our Foreign Resources application. Our application is composed of multiple REST services Java projects. Each project has its own corresponding Git repository URL.
In each repository, there are at least two folders; one is a jar, and one is a war. In the Source Code Management tab, I selected Multiple SCMs and defined every Git repository URL that I have. I determined which branch to build and the sub-directory from that repository. By using the freestyle project, I was able to combine our multiple SCMs.
In the Build Execution shell, I defined the command for maven to build, compile and package our projects. Once everything was ready, I copied it to the destination IP server. Then, I created a separate trigger for the build and deploy process.
Jenkins eased the build and deployment process of our project. The current Jenkins solution feature we used is the most straightforward configuration and served the purpose. It gave us great results:
builds are faster and more reliable
quicker deployments: from 30 minutes to 4.4 seconds
build and deploy configuration to a newly setup server is very convenient
developers can build and deploy within their own dev environment
concurrent builds help a lot on our productivity