Skip to main content

Getting Started with Jenkins (Part I)

This is a series of tutorials for Jenkins, Install and Configure, Automate the builds, CI/CD using Jenkins, Jenkins Pipeline as a Code, etc. This is a Part I Getting Started with Jenkins. We are talking of Devops build and release mechanism. You know the code starts right away from the development machine i.e. from your local machine and it must need some sort of version control in place to track the each and every change over a period of time. A Version Control System(VCS) keep individual’s code in a consistent way by managing the replicas over the change. So, your written code reach the centralized repository i.e. Source Code Management(SCM) using the Pull Request(PR) or some sort of merging technique. Git is widely used version control system in most of the projects. Once your codebase is ready it can go through different environments like development, staging and production. And, in between lot of configuration task need to be done i.e building a stuff, then deploying it, configuring softwares and tools, setting up the servers, monitoring and logging mechanism, prevention alerts, etc. The most of the task needs automation in place as it’s impossible to configure hundreds of thousands of machines manually. So, there is a need for better tool which will automate the build, test your system in staging and deploy it to production. Hudson was a very popular open source Continuous Integration(CI) tool developed by Sun Microsystems. Oracle brought the Sun Microsystem and then it started from this project named as Jenkins. So, Jenkins has become more popular over the last few years.
Jenkins is an extensible, open source continuous integration server. It builds and tests your software continuously and monitors the execution and status of remote jobs, making it easier for team members and users to regularly obtain the latest stable code.
What is Continuous Integration(CI) ?
Continuous Integration(CI) is a continuous process of of merging new code into the centralized repository. You can easily find the issues if there are any. The static code checking is perform in this process to catch the bugs earlier. The unit test plays the important role in this process to validate the code merge into the centralized repository. It is best practice to have a build server designed specifically for performing these tests so your development team can continue merging requests even while tests are being performed.
“Continuous Integration(CI) doesn’t get rid of bugs, but it does make them dramatically easier to find and remove” — Martin Fowler, Chief Scientist, ThoughtWorks.
Code changes made by individual team members are merged together into end-to-end working software, which we called as Integration phase. It’s hard work which often results in code conflicts, difficult to find bugs, code redundancies and and difficult to fix them which leads to software delivery delay. So, with this above approach in agile methodology, we can overcome all these difficulties as today’s businesses need new features to be incorporated into application with a day or week. This required the change of software delivery lifecycle.
Jenkins is the ultimate CI tool. It is a cross platform continuous integration application. Jenkins is used to build and test softwares continuously making it easier for developers to build software rapidly. It’s a plug and play as it can not do most work without respective plug-in’s. As continuous integration evolved, the industry created the notion of continuous delivery and continuous deployment to render production deployments a non-issue. These automated tools allow us to achieve checking code from your machine to deploying it into production system seamlessly.

Comments

Popular posts from this blog

How to use Ngx-Charts in Angular ?

Charts helps us to visualize large amount of data in an easy to understand and interactive way. This helps businesses to grow more by taking important decisions from the data. For example, e-commerce can have charts or reports for product sales, with various categories like product type, year, etc. In angular, we have various charting libraries to create charts.  Ngx-charts  is one of them. Check out the list of  best angular chart libraries .  In this article, we will see data visualization with ngx-charts and how to use ngx-charts in angular application ? We will see, How to install ngx-charts in angular ? Create a vertical bar chart Create a pie chart, advanced pie chart and pie chart grid Introduction ngx-charts  is an open-source and declarative charting framework for angular2+. It is maintained by  Swimlane . It is using Angular to render and animate the SVG elements with all of its binding and speed goodness and uses d3 for the excellent math functio...

Understand Angular’s forRoot and forChild

  forRoot   /   forChild   is a pattern for singleton services that most of us know from routing. Routing is actually the main use case for it and as it is not commonly used outside of it, I wouldn’t be surprised if most Angular developers haven’t given it a second thought. However, as the official Angular documentation puts it: “Understanding how  forRoot()  works to make sure a service is a singleton will inform your development at a deeper level.” So let’s go. Providers & Injectors Angular comes with a dependency injection (DI) mechanism. When a component depends on a service, you don’t manually create an instance of the service. You  inject  the service and the dependency injection system takes care of providing an instance. import { Component, OnInit } from '@angular/core'; import { TestService } from 'src/app/services/test.service'; @Component({ selector: 'app-test', templateUrl: './test.component.html', styleUrls: ['./test.compon...

How to solve Puppeteer TimeoutError: Navigation timeout of 30000 ms exceeded

During the automation of multiple tasks on my job and personal projects, i decided to move on  Puppeteer  instead of the old school PhantomJS. One of the most usual problems with pages that contain a lot of content, because of the ads, images etc. is the load time, an exception is thrown (specifically the TimeoutError) after a page takes more than 30000ms (30 seconds) to load totally. To solve this problem, you will have 2 options, either to increase this timeout in the configuration or remove it at all. Personally, i prefer to remove the limit as i know that the pages that i work with will end up loading someday. In this article, i'll explain you briefly 2 ways to bypass this limitation. A. Globally on the tab The option that i prefer, as i browse multiple pages in the same tab, is to remove the timeout limit on the tab that i use to browse. For example, to remove the limit you should add: await page . setDefaultNavigationTimeout ( 0 ) ;  COPY SNIPPET The setDefaultNav...