As a DevOps engineer, very good knowledge and experience of Git is a MUST-HAVE in order to succeed in the field.
Git is a DevOps tool used for source code management. It is used for tracking changes in the source code, enabling multiple developers to work together on a project.
In this course, we will be talking about Git branching strategy/workflow. There is four most popular branching workflow for Git - Git Flow, GitHub Flow, Gitlab Flow and One Flow.
Each of them has its pros and cons.
Our main focus in this series will be designing and implementing the GitHub workflow as described by Scott Chacon a former employee at GitHub. and since no DevOps project is completed without proper implementation of CI and CD, we will use Jenkins to take care of that.
We will later add Git Flow to our system. So, at the end of the day, our Git branching strategy will have a little bit of Git Flow, GitHub Flow and GitLab Flow.
The Project Features
A well designed GitHub workflow as described by Scott Chacon ( Former GitHub employee).
A multibranch Jenkins pipeline that will run Continuous Integration(Build and Test) when (1) there’s an even on any branch (2) a new branch is created (3) a PR is created.
The pipeline will run Continuous Deployment when another branch is merged or there is a push event on the master branch.
In the case of the mixed flow, the pipeline will deploy to staging when any branch is merged or there is a push event on the develop branch and deploy to production when the develop branch is merged onto the master branch.
We are hosting the Jenkins Instance on our local DevOps lab. So you will not have to pay any cloud service provider to practice.
We will host the project code on Github and configure a Github webhook to inform Jenkins of any activity on the code repository.
We will expose our local Jenkins instance to the internet through ngrok so it can communicate with Github.
This a very important project that you can have in your resume as an experienced engineer.