GitLab CICD Tutorial with Industrial Examples
What you'll learn
- How to use GitLab for creating projects. By end of this tutorial you will know everything needed for using GitLab.
- How to setup CICD jobs for your project to automate testing and deployment via runners.
- Gitlab-ci .yml file comcepts- pipelines, jobs, artifacts, caching, variables, before script, after script
- CICD Runners basics, setting up self hosted runners , tagging runners, runner setting for number of jobs, timeout, etc
- Optimising configuration. Inheriting yaml from other projects and reusing template jobs, reducing redundancy. Usage of Extends and Include concepts.
- Industry examples like linting, unit testing, end to end testing of projects for making sure that the project is stable
- Managing multi repo CICD with downstream pipelines. Calrity on parent-child and multi-project pipelines.
- Yolov3 face detection project creation with CICD jobs for lint check anf pytest with artifacts
- Submodule addition and CICD with submodule
- Will be covering most of the tutorial directly in Gitlab Web based editor, so it wont matter which OS you are using. Good to have a code editor like vscode. .
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.
Who this course is for:
- Software engineers who want to quickly learn how to use gitlab and cicd concepts with complete hands-on.
I've been working in AI industry for the past nine years. My area of interest is Deep Learning and CV. Learning new things is my dopamine source. I have created tutorials on tools and theory that is helpful for engineers in CV, Deep-learning and Software Engineering in general. Understand the philosophy of things and share it with others in simple words, that is my principle on creating tutorials.