
Introduction to Software Development Life Cycle.
Familiarizing different methodologies of SDLC
Intro to CICD concept
Comparison of GitLab and GitHub
Creating an account in GitLab and about CICD feature enabling
GitLab repo creation in browser
Intro into jobs that we are going to do hands-on in next video
Hands-on on cicd job creation and familiarizing pipelines, jobs, artifacts, cache, script, before script, after script
For installing GitLab runner on your machine, first download the runner application
Walk through on runner installation steps
How to run a job in self hosted runner, tag concept
Use cases of self hosted runner
Optimizing GitLab CICD configuration file and related concepts in detail
Configuration optimization hands-on
More optimization concepts
Understanding some of the standard jobs needed for any project
Hands-on of typical CICD jobs
Intro to downstream pipelines and parent-child pipeline (Type-1)
Understanding trigger keyword that enables downstream pipelines
Creating a parent-child pipeline in detail
Type-2 of downstream pipelines
multi Project pipeline hands-on in detail
Tutorial conclusion
Cloning a Yolo face detector and fixing Tensorflow version related issues
Fixing code issues related to Tensorflow version changes
Pushing the fixed code to GitLab
Sample CICD addition
Fix a cv2 import issue in a docker runner by following ChatGPT guidance to adjust the dockerfile and install libopencv-dev and opencv-headless on 3.8 slim buster image, enabling image reading.
Use access tokens to clone submodules in GitLab CI/CD and initialize with depth 20; for private repos, grant access via local settings and allocated job tokens.
Docker in Docker for running docker commands in Docker runner
This course provides an in-depth understanding of various topics around CICD for you to develop efficient pipelines for their projects. The course starts with basics about CICD and then covers topics that are needed for typical industrial applications. Many of the jobs explained here can be simply copy-pasted to your projects to serve the purpose, for other jobs you will be expert enough to implement them yourself with the understanding of various concepts for creating jobs. The related code will be available for your reference.
Industrial examples are covered so that you will get an introduction to typical CICD jobs and their relevance in making projects stable and deployments or delivery fast. You should try out these examples in order to truly master it.
My policy is to make things simple and always have simple examples on each topic for a quick understanding of the concept and then build on top of it as we progress. CICD is a blessing when it comes to ensuring code stability, I will be covering how to set up tests such that this code stability is achieved. There are a lot of videos on YouTube as well on topics covered here, but most likely you will be on top of it by the time you have gone through this tutorial.
Every developer should master CICD, not only DevOps engineers so that everyone can contribute to code stability, quality of code, automating any repetitive jobs, and delivering in an agile fashion. There is a learning curve involved in understanding how to set up decent CICD for a complex project and this tutorial is intended to make this learning easier. Learn the best practices and apply them in your projects, it will help your organization and yourself in moving to the next level of development and delivery.
For further exploration of features, you can refer to the official documentation of GitLab. I will be covering how I typically start implementing a new challenging CICD job, avoiding complicated scripts as complicated jobs are hard to read and hard in maintaining as well, eventually leading to the removal of that job, wasting time and effort. Simple jobs are the key to maintainable configuration files.
Towards the end of tutorial, there is a case study of Yolov3 based face detection in GitLab with CICD. It will help in understanding real world CICD requirements.
Submodule is also added as its used in many project. You will find hands-on for same.