GitLab CI
Learn GitLab CI/CD from your first .gitlab-ci.yml to multi-stage pipelines with artifacts, environments, and deployments.
11 lessons, in order
- 120 min
What Is CI/CD
Picture a team that ships a web app the old way. Someone finishes a feature, runs the tests on their own laptop (or skips them, because it is...
Continuous integrationContinuous deliveryContinuous deploymentPipelinesStagesJobs+2 - 225 min
Your First Pipeline
You now know the vocabulary: pipelines, stages, jobs, runners. Vocabulary is not the same as confidence. Right now, "GitLab runs your script...
.gitlab-ci.yml locationMinimal pipelineSingle jobScript keywordPipeline UIJob logs - 330 min
Jobs and Stages
Your pipeline from the last lesson had one job. Real projects never stay that small. A real project compiles code, runs a unit test suite, runs a...
Default stagesStage keywordParallel jobs in same stageStages keywordNeeds for DAGJob ordering - 430 min
Variables and Secrets
A pipeline that behaves exactly the same no matter who pushed it, or which branch they pushed to, cannot tell staging from production, and it cannot...
Variables blockPredefined CI variablesCI_COMMIT_SHACI_PROJECT_DIRMasked variablesProtected variables+1 - 530 min
Artifacts and Caches
Every job in a pipeline starts from a clean checkout of your repository and runs inside a throwaway environment that is thrown away the instant the...
Artifacts pathsArtifacts expire_inDownloading artifactsCache keyCache pathsArtifacts vs caches - 630 min
Rules and Conditional Jobs
Every job you have written so far runs on every single push, no matter which branch it landed on or why the pipeline started. That is harmless while...
Rules keywordIf conditionsCI_COMMIT_BRANCHCI_PIPELINE_SOURCEWhen manualChanges paths+1 - 735 min
Docker Jobs and Services
A pipeline runner is a bare machine, and by default it has no idea your project needs Python 3.12, or a specific version of Node, or any particular...
Image keywordServices keywordPostgres serviceRedis serviceDocker-in-dockerService networking - 830 min
Environments and Deployments
Your deploy job works. It runs scp or kubectl apply or an Ansible playbook, it goes green, and the new version is live. Then someone asks a question...
Environment keywordEnvironment nameEnvironment urlDeployment trackingManual production deployDynamic environments+1 - 930 min
Includes and Templates
By your third project, the .gitlab-ci.yml files start to rhyme. The same lint job. The same test setup with the same cache key. The same...
Include localInclude projectInclude remoteInclude templateExtends keywordYAML anchors+1 - 1030 min
Runners
Everything in this course so far has been a description of work. You wrote script: lines, GitLab read them, and somehow a container appeared, ran...
Shared runnersGroup runnersProject runnersDocker executorShell executorKubernetes executor+2 - 1160 min
Capstone: Build, Test, Deploy
Every lesson in this course taught one keyword against a toy job. That is how you learn a keyword and it is not how you meet one. A real pipeline is...
Multi-stage pipelineBuild artifactPostgres service testDocker image build and pushManual production deployRules on main
Learn GitLab CI in your language
Every lesson, quiz, and tutor reply renders in your language. The AI tutor matches the language you ask in.
Roles that use GitLab CI
See how hiring teams interview engineers on GitLab CI, in production-like environments.
CI/CD Engineer
Hire CI/CD engineers who keep your release train on time. Interview them in real GitHub Actions, GitLab CI and Jenkins workspaces with builds that fail the way they do in production.
See the interviewRelease/Build Engineer
Hire release and build engineers who make shipping boring. Real repos, real artifact stores, real signing flows. We record every step they take.
See the interviewDevOps Engineer
Hire DevOps engineers who actually ship. Run live or take-home interviews in production-like Linux environments with Docker, Kubernetes, Terraform and CI/CD. See how they debug, automate, and work alongside AI.
See the interview