Automating CI/CD with GitLab
Build production-ready GitLab CI/CD pipelines that test, secure, package, and deploy applications to Kubernetes. Learn GitLab runners, registries, security scanning, pipeline optimization, performance testing, and GitOps delivery through hands-on labs.
About the course
GitLab CI/CD brings source control, automation, security, packaging, and deployment into a single DevOps platform. This hands-on course teaches you to design and operate complete GitLab pipelines, from Git and GitLab fundamentals through runner installation, automated testing, security scanning, registries, Kubernetes deployment, and pipeline performance tuning. You will finish with an end-to-end project that prepares code, builds the pipeline infrastructure, verifies and secures the application, improves pipeline performance, and delivers the application to the correct environment.
Course details
- Level: Advanced
- Duration: 1 Month
What's included
- Online Training
- Classroom Training
- WhatsApp Support
- Hands-on Labs
- End-to-End Project
- Course Certificate
Course content
Getting Started with DevOps, Git & GitLab
- Life before DevOps
- Git essentials
GitLab Components
- Projects
- Groups
- Issues
- Labels
- Merge Requests (MR)
- Commit history
GitLab CI/CD Pipeline
- Understanding pipelines
- Continuous Integration: is your code good?
- Continuous Delivery: where should your code go?
- Continuous Delivery vs Continuous Deployment
- GitLab instances
- GitLab runners
- Pipeline stages, jobs, and commands
- GitLab CI/CD pipeline status
- Configuring pipelines with .gitlab-ci.yml
Installing GitLab Components
- Understanding GitLab instances and runners
- Runner types: instance, group, and project
- Lab: Installing a GitLab instance
- Lab: Accessing the GitLab UI
- Lab: Installing GitLab runners
- Lab: Registering GitLab runners
- Runner performance, security, and monitoring considerations
Getting Code Ready
- Building code in a CI/CD pipeline
- Checking code quality in a CI/CD pipeline
- Lab: Using Code Quality
- Enabling automated functional tests
- Lab: Automating tests
- Fuzz testing in a CI/CD pipeline
- Lab: Using fuzz testing
- Accessibility testing in CI/CD
- Lab: Enabling accessibility testing
Securing Code
- Understanding GitLab security scanning
- Static Application Security Testing (SAST)
- Lab: Enabling and configuring SAST
- Secret detection
- Lab: Using secret detection
- Dynamic Application Security Testing (DAST)
- Lab: Enabling and configuring DAST
- Dependency scanning
- Lab: Enabling and configuring dependency scanners
- Container image scanning
- Lab: Enabling and configuring container scanning
- License compliance and policy
- Infrastructure as Code (IaC) scanning
- Lab: Enabling and configuring IaC scanning
- Vulnerability, pipeline, and merge request security reports
- Understanding security vulnerabilities
- Integrating external security scanners
- Lab: Using an external security scanner
Packaging & Deploying Code
- Understanding the GitLab Package Registry
- Lab: Working with packages and registries
- Authenticating to registries
- Lab: Configuring registry authentication
- Lab: Building and pushing packages to the Package Registry
- Lab: Building and pushing images to the Container Registry
- Using images and packages from GitLab registries
- Using GitLab Flow for different environments
- Using Review Apps for testing
- Using CI/CD variables
- Lab: Creating variables
- Deploying to a Kubernetes cluster
- Lab: Connecting GitLab to Kubernetes with a GitOps workflow
Performance Tuning CI/CD Pipelines
- Understanding Directed Acyclic Graphs (DAG)
- Lab: Creating a DAG in GitLab CI
- Building code for multiple architectures
- Implementing caching
- Lab: Using caching
- Implementing artifacts
- Lab: Using artifacts
- Understanding YAML anchors and extensions
- Lab: Using anchors and extensions
- Understanding reference tags
Performance Tests
- Integrating browser performance testing
- Load performance testing with k6
End-to-End Project
- Setting up the environment
- Preparing code
- Building pipeline infrastructure
- Verifying code
- Securing code
- Improving the pipeline
- Delivering code to the correct environment
Frequently asked questions
- Is this training live or pre-recorded?
- The training is live and instructor-led, available in classroom and online formats. Every training session is also recorded and uploaded to the student portal.
- What should I know before taking this GitLab CI/CD course?
- Basic familiarity with Linux, software delivery, and version control is helpful. The course begins with DevOps and Git essentials before moving into advanced GitLab CI/CD workflows.
- Does the course include hands-on labs?
- Yes. Labs cover GitLab installation, runner registration, automated testing, security scanning, registries, pipeline optimization, Kubernetes delivery, and an end-to-end project.
- Does this course cover GitLab security scanning?
- Yes. The curriculum covers SAST, DAST, secret detection, dependency scanning, container scanning, license compliance, IaC scanning, security reports, and external scanners.
- Will I learn to deploy applications to Kubernetes?
- Yes. You will learn to connect GitLab with Kubernetes and deliver applications using a GitOps workflow.
- How can I practice the labs?
- Network Nuts provides online lab environments. When needed, instructors can also guide you through the software required to create your own practice environment.