5.00 (5 reviews)
☑ How to set up and configure Jenkins multibranch CICD pipelines
☑ How to expose Local Virtual Linux machines to the internet with Ngrok
☑ How to enable multiple developers work on a project
☑ How to use Git as a DevOps Engineer
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.
Create a GitHub repository
Set up the sample code on a dev environment
Create and configure a Jenkins multi-branch pipeline
Configure build and test stages of the pipeline
Expose local Jenkins to the internet
Configure a GitHub Web hook to trigger the pipeline build
Test the web hook and the pipeline
Only events to the master branch should trigger the deploy stage
Working With Multiple Developers
Adding a contributor to the project
Set up the project on your virtual desktop
Testing the solution with a failing automated test
Mixed Git Branching Workflow
Mixed flow setup
Mixed flow demo
This is another great course from Dare! This is the best course on the subject of Github-Workflow. Highly Recommended!