---
title: "GitLab CI/CD: Pipeline Automation Fundamentals"
description: "Test your mastery of GitLab CI/CD fundamentals, including .gitlab-ci.yml structure, Runner architecture, Pipeline stages, and environment management."
author: "Mohammad Abu Mattar"
canonical: https://mkabumattar.com/quizzes/post/gitlab-cicd-pipeline-quiz
---

# GitLab CI/CD: Pipeline Automation Fundamentals

Welcome to the GitLab CI/CD Basics Quiz! This quiz covers the fundamentals of GitLab CI/CD, including pipelines, jobs, stages, triggers, and best practices. Test your knowledge and see how well you understand the platform.

## Questions

### 1. What is the standard filename for a GitLab CI/CD configuration?

- `gitlab-ci.yaml`
- `.gitlab-ci.yml`
- `.gitlab-pipelines.yml`
- `ci-config.yml`

**Hint:** It starts with a dot and uses YAML extension.

### 2. What is a GitLab "Runner"?

- A command-line tool for local repository debugging
- An application that executes jobs defined in a pipeline
- A background service that monitors server performance
- A specialized web browser for testing UI components

**Hint:** The engine that runs the code.

### 3. By default, how do jobs in the same "stage" execute in GitLab?

- Sequentially in the order they are written in YAML
- In parallel as long as there are available runners
- One at a time based on the alphabetical name of the job
- Only after the first job in the stage has completed

**Hint:** Think about speed and efficiency.

### 4. What does the "stages" keyword define at the top of the YAML file?

- The permissions levels for different project members
- The execution order and grouping of pipeline jobs
- The list of external servers used for job distribution
- The version requirements for the GitLab Runner service

**Hint:** The order of operations.

### 5. What is an "Artifact" in GitLab CI/CD?

- A snapshot of the Git history used for rollbacks
- A list of files generated by a job to be used later
- A deprecated function that is no longer used in code
- A temporary log file that is deleted after a job ends

**Hint:** Passing data between stages.

### 6. How do you prevent a job from running unless a specific condition is met?

- By using the `condition:` block within the job scope
- By using the `rules:` keyword to define logic
- By using the `check-if:` syntax at the top level
- By using the `validate:` property for shell commands

**Hint:** The "rules" keyword.

### 7. What is the "Cache" keyword used for?

- To store sensitive API keys and login credentials
- To persist project dependencies between pipeline runs
- To save the final production build for public release
- To keep a record of the terminal output for auditing

**Hint:** Speeding up subsequent pipeline runs.

### 8. What is a "Shared Runner"?

- A runner that executes jobs from multiple Git branches
- A runner available to all projects within an instance
- A runner that uses a shared filesystem for every job
- A runner designed for collaborative live coding sessions

**Hint:** Available to all projects.

### 9. What does the "image" keyword specify in a job?

- The metadata tag for identifying the project owner
- The Docker container used for the job's environment
- The graphical icon displayed in the pipeline dashboard
- The visual screenshot captured during a failing test

**Hint:** The container environment.

### 10. What is the "script" keyword in a job definition?

- A plain-text description of what the job performs
- A list of shell commands executed by the Runner
- A reference to an external JavaScript configuration
- A tool for generating automatic project documentation

**Hint:** The actual commands to run.

### 11. What are "CI/CD Variables" in GitLab?

- Dynamic counters that track the number of job failures
- Custom environment settings used for configuration
- A list of files that change between different commits
- The internal addresses of the GitLab Runner servers

**Hint:** Secure environment settings.

### 12. What is a "Pipeline"?

- A connection between the database and the web server
- A sequence of jobs organized into different stages
- A tool for managing the flow of developer communication
- A repository used specifically for storing binary files

**Hint:** The top-level component of CI/CD.

### 13. What is the "allow_failure" keyword used for?

- To permit the deletion of a branch even if tests fail
- To let a pipeline continue despite a specific job error
- To disable the error reporting for a specific project
- To automatically restart a job when it crashes

**Hint:** Non-critical job failure.

### 14. What does "when: manual" do in a job?

- It requires the Runner to be started by hand on a PC
- It prevents a job from starting without user approval
- It forces the job to execute using a local shell executor
- It disables all automated triggers for the entire pipeline

**Hint:** Human intervention.

### 15. What is a "GitLab Runner Executor"?

- A user role with the permission to cancel running jobs
- The environment type where the pipeline job is run
- A security protocol for encrypting data between Runners
- A script that cleans up artifacts after a build finishes

**Hint:** The environment type (Docker, Shell, etc.).

### 16. What is the "before_script" keyword?

- A set of global commands that run before every job
- A way to check for syntax errors before the YAML is saved
- A tool for managing the order of Git commits in a branch
- A script that executes only when a pipeline is cancelled

**Hint:** Preparation steps.

### 17. What is "Environment" management in GitLab CI/CD?

- A system for monitoring the hardware health of Runners
- A feature to track and manage software deployment targets
- A configuration for the physical location of data centers
- A method for calculating the carbon footprint of a build

**Hint:** Tracking where code is deployed.

### 18. What is a "Downstream Pipeline"?

- A pipeline that has a lower priority in the runner queue
- A pipeline triggered by a parent or external pipeline
- A pipeline used exclusively for deleting old build logs
- A pipeline that runs only on local developer machines

**Hint:** One pipeline triggering another.

### 19. What is the purpose of "Tags" in a job definition?

- To assign labels to a Git commit for version release
- To ensure a job runs on a Runner with specific traits
- To organize jobs into searchable categories in the UI
- To notify specific team members when a job starts

**Hint:** Matching jobs to specific Runners.

### 20. What does "needs" allow you to do in GitLab CI?

- To list the required hardware specs for a job
- To execute jobs out of stage order based on dependencies
- To specify which users must approve a deployment
- To define the external libraries required by the code

**Hint:** Directed Acyclic Graph (DAG) pipelines.

### 21. What is the "Merge Request Pipeline"?

- A tool for combining multiple GitLab user accounts
- A pipeline that runs specifically on code in an MR
- A system for automatically rewriting code for developers
- A way to synchronize different repositories together

**Hint:** Testing changes before they are merged.

### 22. What is "GitLab Container Registry"?

- A database for storing raw text logs from all jobs
- A built-in service to store and manage Docker images
- A public forum for sharing open-source code snippets
- A tool for managing physical server hardware in a lab

**Hint:** Storing Docker images within GitLab.

### 23. What does "dependencies: []" do in a job?

- It prevents the job from accessing any local Git files
- It stops the job from downloading artifacts from others
- It indicates that the job requires no external software
- It disables the network connection for the running job

**Hint:** Controlling artifact downloads.

### 24. What is a "Scheduled Pipeline"?

- A pipeline that only runs when a developer is offline
- A pipeline set to run at specific intervals using cron
- A way to predict the completion time of a project
- A tool for organizing developer shifts and meetings

**Hint:** Running jobs on a timer.

### 25. What is the "Parallel" keyword used for in a single job?

- To run a job on two different GitLab instances at once
- To run multiple instances of a job for load balancing
- To execute the build and deploy stages at the same time
- To allow two developers to edit the same YAML file

**Hint:** Splitting one task into many.

### 26. What is "Auto DevOps"?

- A system for automatically hiring and firing developers
- A set of pre-built templates for automated CI/CD
- A tool for generating code comments using AI models
- A method for driving automated test vehicles in a lab

**Hint:** Zero-configuration CI/CD.

### 27. What is "Variables: GIT_STRATEGY" used for?

- To define the branching model used by the project
- To choose between "clone" or "fetch" for repository data
- To change the default merge behavior of pull requests
- To hide the source code from specific Runner instances

**Hint:** Controlling how code is fetched.

### 28. What is "Review Apps"?

- A mobile application for rating developer performance
- Dynamic environments for previewing changes in an MR
- A system for peer-reviewing technical documentation
- A tool for checking the spelling of Git commit messages

**Hint:** Dynamic environments for Merge Requests.

### 29. What does "interruptible: true" do?

- It allows the system to pause the build for maintenance
- It lets new pipelines cancel redundant older jobs
- It makes the job stop whenever a developer logs in
- It forces the job to wait for manual user intervention

**Hint:** Optimizing for redundant builds.

### 30. What is the "GitLab-managed Terraform State"?

- A list of all physical servers owned by the company
- A secure backend to store Terraform infrastructure data
- A tool for drawing network diagrams in the GitLab UI
- A way to track the geographical location of Runners

**Hint:** Infrastructure as Code integration.
