GitLab CI/CD Specialist key terms
GitLab CI/CD Specialist · Get comfortable with the vocabulary.
- Pipeline
- Related: Job, Stage, Workflow Rules
A top-level CI/CD definition stored in .gitlab-ci.yml that groups jobs into stages and runs them when triggered by events such as pushes, merges, schedules, or API calls.
- Job
- Related: Script, Runner, Artifacts
The smallest executable unit in a pipeline, defined by a YAML key at the top level and run by a runner; it contains a script and optional configuration such as image, rules, artifacts, and cache.
- Stage
- Related: Job, needs, Pipeline
A named group of jobs that run in parallel with each other but only after all jobs in the preceding stage succeed, unless needs is used to override the ordering.
- Script
- Related: Job, before_script, after_script
The required list of shell commands a job executes on the runner; each list item runs as a separate command, and before_script and after_script extend execution around it.
- extends
- Related: YAML Anchors, !reference Tag, include
A keyword that lets one job or hidden template inherit configuration from another YAML entry, enabling reuse of shared settings across many jobs without duplication.
- YAML Anchors
- Related: extends, !reference Tag
Native YAML syntax using & to name a block and * to reuse it, and << to merge mappings; useful for repeating configuration fragments inside a single .gitlab-ci.yml file.
- !reference Tag
- Related: extends, include
A GitLab-specific YAML tag that copies a value from another part of the configuration, including from files brought in with include, and can be nested inside arrays and maps.
- include
- Related: extends, !reference Tag, CI/CD Components
A keyword that imports configuration from other local files, remote URLs, templates, or project files at pipeline creation time, allowing shared CI logic to be maintained centrally.
- CI/CD Components
- Related: include, spec inputs
Reusable, versioned units of pipeline configuration published to the CI/CD Catalog, included with a component path and version and optionally parameterized through inputs.
- spec inputs
- Related: CI/CD Components, Predefined Variables
Typed parameters declared in a component or pipeline header that let callers pass values into included configuration, with optional defaults and validation, replacing older variable-based templating.
- Workflow Rules
- Related: rules, Pipeline
A top-level rules list that decides whether the entire pipeline is created or skipped for a given event, controlling which branches, tags, and merge request events can run pipelines.
- rules
- Related: Workflow Rules, only/except, when
A per-job ordered list of conditions evaluated top to bottom; the first match sets whether the job runs and can attach attributes such as when, allow_failure, or variables.
- only/except
- Related: rules, Workflow Rules
The legacy way to include or exclude jobs based on branch names, tags, or refs; it is largely superseded by rules and should not be mixed with rules in the same job.
- needs
- Related: Directed Acyclic Graph, Stage, needs:project
A job keyword that declares dependencies on other jobs, letting downstream jobs start as soon as those jobs finish rather than waiting for the whole prior stage, forming a directed acyclic graph.
- Directed Acyclic Graph
- Related: needs, Stage
The dependency structure formed when jobs use needs; GitLab renders it as a DAG view and executes jobs in the earliest order allowed by their declared dependencies instead of strict stage order.
- when
- Related: rules, allow_failure, manual job
A job keyword that sets execution behavior: on_success, on_failure, always, manual, delayed, or never, affecting whether and how the job runs relative to earlier jobs.
- allow_failure
- Related: when, rules
A setting that marks a job's failure as non-blocking, so the pipeline can continue and the job shows as a warning rather than causing the pipeline to fail.
- manual job
- Related: when, allow_failure
A job configured with when: manual that requires a person to click run in the UI or call the API before it executes; it can be optional or blocking depending on allow_failure.
- trigger
- Related: Child Pipeline, Multi-project Pipeline, Upstream/Downstream Pipeline
A keyword that starts a downstream pipeline, either as a child pipeline from a YAML file in the same project or as a multi-project pipeline in another project, optionally passing variables.
- Child Pipeline
- Related: trigger, Parent Pipeline, Dynamic Child Pipeline
A pipeline generated by a parent job using trigger with include, often created dynamically by a script; it runs within the same project and is shown nested under the parent pipeline.
- Multi-project Pipeline
- Related: trigger, Upstream/Downstream Pipeline
A downstream pipeline started in a different project through trigger:project, commonly used to fan out deployments or run integration suites across repositories.
- Upstream/Downstream Pipeline
- Related: Multi-project Pipeline, Child Pipeline, trigger
The relationship between a pipeline that starts another and the one it starts; variables and status can flow between them, and downstream pipelines can be configured to block or not block.
- Runner
- Related: Executor, Tags, Registration Token
An agent process that picks up jobs from GitLab and executes them; runners are registered with a token, tagged, and scoped to a project, group, or instance.
- Executor
- Related: Runner, Docker Executor, Shell Executor
The component of a runner that provisions the environment where a job runs, such as shell, docker, docker-autoscaler, kubernetes, or virtual machine executors.
- Tags
- Related: Runner, run_untagged
Labels assigned to runners and referenced in jobs so GitLab only schedules a job on a runner that carries all the job's required tags, controlling where work runs.
- run_untagged
- Related: Tags, Runner
A runner setting that allows the runner to accept jobs with no tags; when disabled, only jobs specifying at least one matching tag can be picked up.
- Docker Executor
- Related: Executor, image, services
A runner executor that runs each job in a fresh container, using the job's image as the environment and optionally a services list for linked containers.
- Shell Executor
- Related: Executor, Docker Executor
A runner executor that runs job scripts directly on the host machine's shell, sharing installed tools and state between jobs and offering less isolation than containers.
- image
- Related: Docker Executor, services
A job or global keyword naming the container image used as the execution environment; it is honored by container-based executors and ignored by the shell executor.
- services
- Related: image, Docker Executor
Additional containers started alongside a job, typically databases or caches, reachable by hostname from the job container during execution.
- Predefined Variables
- Related: CI_JOB_TOKEN, CI_PIPELINE_SOURCE, variables
Variables GitLab injects into every job, such as CI_COMMIT_SHA, CI_PROJECT_PATH, CI_JOB_TOKEN, and CI_PIPELINE_SOURCE, providing context about the project and triggering event.
- variables
- Related: Predefined Variables, Protected Variables, Masked Variables
The keyword for defining environment variables available to job scripts; values can be set globally or per job and can reference other variables.
- Masked Variables
- Related: Protected Variables, variables
Project or group variables configured so their values are hidden in job logs; values must meet length and character rules, and masking only redacts exact matches.
- Protected Variables
- Related: Masked Variables, Protected Branch, variables
Variables that are only exposed to pipelines running on protected branches or tags, limiting secret availability to trusted refs and reducing leak risk.
- CI_JOB_TOKEN
- Related: Predefined Variables, Secrets Management
A short-lived token available during a job that authenticates limited API calls, package registry access, and cloning of other projects that permit it.
- Secrets Management
- Related: ID Token, CI_JOB_TOKEN
Integrations such as HashiCorp Vault, Azure Key Vault, or Google Secret Manager that inject secrets into jobs at runtime through ID tokens instead of storing them as CI variables.
- ID Token
- Related: Secrets Management, CI_JOB_TOKEN
A signed OIDC JWT issued to a job that external systems can verify, commonly used to authenticate to cloud providers and secret managers without static credentials.
- cache
- Related: Artifacts, cache:key, cache:policy
A keyword that saves and restores files between jobs and pipelines using a key, usually dependency directories; it is best-effort and not guaranteed to be present.
- Artifacts
- Related: cache, dependencies, artifacts:expire_in
Files a job produces and uploads for later jobs or download; artifacts are passed along needs and stage order and are retained according to expiry settings.
- cache:key
- Related: cache, cache:policy
The string that identifies a cache archive; jobs with the same key share cached files, and keys can include variables or a hash of lockfiles for accuracy.
- cache:policy
- Related: cache, cache:key
Controls whether a job pulls, pushes, or both for a cache entry: pull, push, or pull-push, useful for avoiding redundant uploads in parallel jobs.
- dependencies
- Related: Artifacts, needs
A job keyword restricting which earlier jobs' artifacts are downloaded; unlike needs it does not change execution order, only artifact fetching.
- parallel
- Related: parallel:matrix, needs
A keyword that splits one job into multiple concurrent instances, either a fixed count or a matrix of variable combinations, each running with a distinct CI_NODE_INDEX.
- parallel:matrix
- Related: parallel, rules
A parallel form that generates one job per combination of listed variable values, enabling test grids across versions, platforms, or configurations.
- resource_group
- Related: environment, needs
A keyword that serializes jobs sharing the same group name, ensuring only one runs at a time, commonly used to prevent concurrent deployments to the same environment.
- environment
- Related: resource_group, Protected Environment
A keyword that records a deployment target with a name and optional URL, enabling tracking, stop actions, and protection rules for that environment.
- Protected Branch
- Related: Protected Variables, Protected Environment
A branch configured with push and merge restrictions; pipelines on it can access protected variables and protected runners, and deployments may require approval.
- Protected Environment
- Related: environment, Protected Branch
An environment with deployment restrictions, such as allowed branches or required approvals, so only authorized pipelines can deploy to sensitive targets like production.
- CI_PIPELINE_SOURCE
- Related: rules, Predefined Variables, Workflow Rules
A predefined variable naming the event that created the pipeline, such as push, merge_request_event, schedule, web, or pipeline, and frequently used in rules conditions.
- Merge Request Pipeline
- Related: CI_PIPELINE_SOURCE, rules, Workflow Rules
A pipeline run for a merge request event rather than a branch push, often used with rules to run validation on proposed changes before merging.
- Detached Merge Request Pipeline
- Related: Merge Request Pipeline, Workflow Rules
A merge request pipeline that is not tied to a branch pipeline; it occurs when no branch pipeline exists for the source branch, affecting which jobs and variables apply.
- Pipeline Efficiency
- Related: cache, needs, parallel
The practice of reducing pipeline duration and runner load through caching, artifact scoping, needs-based ordering, parallelization, and avoiding unnecessary jobs.
- Troubleshooting Pipelines
- Related: CI Lint, Job Logs
Diagnosing failed or stuck pipelines by reading job logs, CI Lint results, exit codes, runner logs, and error messages, then adjusting configuration or runner capacity.
- CI Lint
- Related: Troubleshooting Pipelines, include
A built-in validator that checks .gitlab-ci.yml syntax and logic, can simulate pipeline creation with variables, and reports errors before a real run.
- Job Logs
- Related: Troubleshooting Pipelines, Masked Variables
The captured output of a job's script, including section markers and errors; logs are the primary source for diagnosing failures and verifying variable values.
- Retry
- Related: Troubleshooting Pipelines, when
A job keyword specifying how many times GitLab should automatically rerun a job on failure, optionally limited to certain failure reasons such as runner_system_failure.