Skip to content

Instantly share code, notes, and snippets.

View Rishav-Git's full-sized avatar

Rishav Sarkar Rishav-Git

View GitHub Profile
@Rishav-Git
Rishav-Git / Jenkins-project.md
Created February 27, 2018 05:05
Continuous Integration and delivery for configuration driven development using jenkins

Continuous Integration and delivery using Jenkins.

Setting up the Repository:

We need to have Git as Version Control System for source code management in software development. A master branch is created by default. We consider master branch to be the main branch where the source code of HEAD always reflects a production-ready state. A develop branch is created parallel to the master branch. We consider develop branch to be the main branch where the source code of HEAD always reflects a state with the latest delivered development changes for the next release. These two branches have infinite lifetime and exists as long as the project exists. Now if we want to add some features to the existing project then a Feature branch is created and a Release branch is created to support preparation of a new production release.

The Process:

Jenkins can be used to run build jobs sequentially. Using Jenkins, we can trigger a build job from another build job thus automating the process of building multiple jobs fr

@Rishav-Git
Rishav-Git / Jenkins.md
Last active February 5, 2018 07:04
Jenkins Basics

What is Jenkins?

Jenkins is a self-contained automation server that allows continuous integration and continuous delivery of projects, regardless of the platform you are working on. It is a free source that can handle any kind of build or continuous integration. You can integrate Jenkins with a number of testing and deployment technologies.

Why Jenkins?

Jenkins is a software that allows continuous integration. Jenkins will be installed on a server where the central build will take place. The following flowchart demonstrates a very simple workflow of how Jenkins works.

@Rishav-Git
Rishav-Git / Using-maven.md
Last active February 2, 2018 05:46
Using Maven as Continuous Build Tool

Maven Basics:

Using eclipse to create a simple maven project:

  1. Select File -> Project.

  2. Expand Maven.

  3. Select Maven Project.

@Rishav-Git
Rishav-Git / Maven-Concepts.md
Last active February 2, 2018 05:52
Maven Concepts

Maven

Maven is a powerful build tool for Java software projects. Actually, we can build software projects using other languages too, but Maven is developed in Java, and is thus historically used more for Java projects.

What is a Build Tool?

A build tool is a tool that automates everything related to building the software project. Building a software project typically includes one or more of these activities:

• Generating source code (if auto-generated code is used in the project).

@Rishav-Git
Rishav-Git / DevOps-Tools.md
Created February 2, 2018 04:52
DevOps Tools

Continuous Development tools (Code)

Subversion(svn):

Subversion is a free/open source centralized version control system (CVCS). It uses central server to store all files and enable team collaboration. That is, Subversion manages files and directories, and the changes made to them, over time. This allows you to recover older versions of your data or examine the history of how your data changed.

Subversion can operate across networks, which allows it to be used by people on different computers. At some level, the ability for various people to modify and manage the same set of data from their respective locations fosters collaboration. Progress can occur more quickly without a single conduit through which all modifications must occur. And because the work is versioned, you need not fear that quality is the trade-off for losing that conduit—if some incorrect change is made to the data, just undo that change.

Git:

@Rishav-Git
Rishav-Git / DevOps.md
Last active February 2, 2018 04:36
DevOps

What is DevOps?

DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market.

Under a DevOps model, development and operations teams are no longer “siloed.” Sometimes, these two teams are merged into a single team where the engineers work across the entire application lifecycle, from development and test to deployment to operations, and develop a range of skills not limited to a single function. Quality assurance and security teams may also become more tightly integrated with development and operations and throughout the application lifecycle.

These teams use practices to automate processes that historically have been manual and slow. They use a

@Rishav-Git
Rishav-Git / Successful-Git-Branching-Model.md
Last active February 21, 2024 05:39
A Successful Git Branching Model

Why git?

Git really changed the way developers think of merging and branching. From the classic CVS/Subversion world, merging/branching has always been considered a bit scary and something you only do every once in a while. But with Git, these actions are extremely cheap and simple, and they are considered one of the core parts of your daily workflow, really. As a consequence of its simplicity and repetitive nature, branching and merging are no longer something to be afraid of. Version control tools are supposed to assist in branching/merging more than anything else.

Decentralized but centralized

The repository setup that we use and that works well with this branching model, is that with a central “truth” repo. Note that this repo is only considered to be the central one (since Git is a DVCS, there is no such thing as a central repo at a technical level). We will refer to this repo as origin, since this name is familiar to all Git users.

Using Git Bash commands:

Getting started with Git commands:

  1. To make a directory a git repository, we use the command:

     $git init
    

2)To create a repository with name , we use the command:

@Rishav-Git
Rishav-Git / Git_File_comparison.md
Last active January 17, 2018 04:42
Comparing files in the master branch with files in the developer branch

Comparing files in the master branch with files in the developer branch

Creating a repository:

1)Copy the files to a directory.

2)Make the directory a git repository using the command:

$git init

3)Now add the files to the staging area using the command: