In this course, you will :
- Learn the ins and outs of GitLab CI/CD with HANDS-ON examples from the ground up.
- A crash course in DevOps and the concept of CI/CD (Continuous Integration, Continuous Delivery, and Continuous Deployment).
- Pipeline, Stages, Jobs, Artifacts, Runners, Variables, Environments, and many more are GitLab core concepts.
- ADVANCE GitLab CI/CD concepts, which are not well explained even in GitLab's official documentation.
- Create full GitLab CI CD and DevOps pipelines to automate the build, test, and deployment phases.
- A real-time industry standard GitLab CICD pipeline for the 'Employee Portal' Python web application's Continuous Integration, Continuous Delivery, and Deployment.
- GitLab CI pipelines can be deployed on Heroku Cloud.
- The resources tab contains codes and data-sets. This will save you typing time.
1. Getting Started with GitLab
- What is GitLab
- Create first Project
- GitLab UI Tour
- Virtual Machine Installation
2. Create First Pipeline
- Setting up Git Branches
- What is Pipeline?
- Write First Pipeline
- Pipeline Execution Logs Explained
3. Artifacts with Nodejs Application
- Creating Nodejs Application
- Writing GitLab Pipeline
- Stage & Stages in a Pipeline
- Writing GitLab Pipeline Continued
- Running Jobs in Background
- Optimizing the Pipeline
4. GitLab Runners and Installation
- Introduction to GitLab Runners
- Shared GitLab Runners
- Installing GitLab Runner (Things to keep in mind)
- Install GitLab Runner in Local Machine?
5. Run Pipelines using Local Runners
- Create Python App & Dockerfile
- Write GitLab Pipeline
- Run the Pipeline locally
- Improvising the Pipeline
6. Variables in GitLab CI/CD
- What are GitLab CI/CD Variables?
- Predefined GitLab Variables
- Create Custom Variables
- Secret Variables in GitLab
- Pipeline Continued
7. Project - Requirements & Setup (Python Application)
- Designing Project Workflow
- How to add SSH keys in GitLab
- Create Model for Python App
- Create Front-end for Python App
- Writing the Application Logic
8. Project - Create GitLab CI Pipeline
- Lint Tests with Flake8
- Add Lint Tests in Pipeline
- Write Smoke Tests using pytest
- Write Unit Tests using pytest
- Add Testing Stage in Pipeline
- Add On: Extensions for Linting
- Writing Dockerfile to Build Project Image
- Adding Build Stage in Pipeline
- Push Docker Image to GitLab Container Registry
9. Project - Create GitLab CD Pipeline (Deployment to Heroku)
- Different Deployment Options
- Getting Started with Heroku
- Deploy to Staging Environment
- Deploy to Staging Environment Continued
- Assignment - Add Deploy to Production Stage
- 1 question
- Deploy to Production Environment
- Controlling the Production Deployments
- Running the Final CI/CD Pipeline
10. Static Environments in GitLab CI/CD
- Enhancing the Pipeline Workflow
- What are Environments & Deployments in GitLab
- Adding Static Environments in Pipeline
- Rollback Deployments
11. Dynamic Environments in GitLab CI/CD
- Adding Dynamic Environments in Pipeline
- GitLab Variables issue and its Workaround
- Run the Pipeline
- Trigger for Manual Production Deployment
12. Stop Dynamic Environments
- Creating Teardown Job
- When to run the Stop job?
- Dynamic Environments Teardown LIVE
13. Job Templating
- Idea behind Job Templating
- YAML Anchors Explained
- Implement Job Templates in Project Code
- Run Job Template Pipeline
- CI Lint Tool in GitLab
- How to Schedule Pipelines?
- Timeout in GitLab