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

What's included

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.