GitLab CI/CD Specialist flashcards
GitLab CI/CD Specialist · Build recall with a focused review session.
32 cards. Read the term and the definition here. The deck at the top of this page is optional.
- Reserved top-level keywords
- Keys such as stages, variables, include, workflow, default, image, services, cache, and before_script are pipeline keywords. Any other top-level key is parsed as a job name.
- extends merge behavior
- extends performs a reverse deep merge: the child overrides scalar values, arrays are replaced not concatenated, and up to eleven inheritance levels are permitted.
- !reference tag
- A YAML tag that copies a specific key, including nested keys, from another job or from a hidden template job, avoiding duplication without full inheritance.
- workflow rules purpose
- Global workflow:rules decide whether the pipeline is created at all, unlike job rules which only decide whether an individual job is added.
- after_script isolation
- after_script runs in a separate shell after the job, so exported variables, working directory changes, and shell state from script do not carry over.
- default keyword scope
- default sets image, services, cache, before_script, after_script, tags, and retry for all jobs; a job-level value replaces rather than merges with the default.
- Include source types
- include supports local files, remote URLs, CI templates, and other projects; project includes require include:file and optionally include:ref to pin a branch or tag.
- Runner config.toml concurrent
- The top-level concurrent value caps how many jobs one runner process executes simultaneously across all [[runners]] entries defined in that configuration file.
- Runner authentication token
- A token created in the UI or API that identifies a runner in config.toml. It replaces the deprecated registration token flow and is not a user credential.
- Job tag matching
- A job runs only on a runner that has every tag listed on the job. No matching runner leaves the job pending with a no-runners error.
- Protected runner behavior
- Protected runners accept only jobs running on protected branches or protected tags, which prevents unprotected feature branches from reaching production infrastructure and secrets.
- Shell executor limitation
- The shell executor ignores image and services and runs commands directly on the runner host, inheriting its installed software, environment, and permissions.
- Docker executor isolation
- The docker executor runs each job in a fresh container from the job image, with the repository cloned into the build directory and services on a linked network.
- Kubernetes executor model
- The kubernetes executor creates a pod per job, with the build container plus service containers, and supports autoscaling and ephemeral runner environments.
- Variable precedence order
- Highest to lowest: trigger and manual pipeline variables, project, group, instance, job-level YAML, global YAML, then deployment variables. Higher entries override lower ones.
- Protected variable rule
- A protected variable is injected only into pipelines running on protected branches or protected tags, keeping production secrets away from feature branches and forks.
- Masked variable constraints
- Masked values must be at least eight characters, contain no whitespace, and use a Base64 or hex-safe character set; masking redacts logs but does not encrypt storage.
- File-type variable
- A file variable writes its value to a temporary file and sets the variable to that file path, used for kubeconfig, certificates, and SSH private keys.
- id_tokens OIDC
- id_tokens issues a signed JWT with a configured audience, letting jobs authenticate to cloud providers without storing long-lived static credentials in variables.
- Cache versus artifacts
- Cache is best-effort storage on the runner for speeding repeat jobs; artifacts are uploaded to GitLab and guaranteed to be available to later-stage jobs.
- cache key files
- cache:key:files computes a SHA over listed lockfiles, so changing dependencies produces a new cache key and avoids restoring stale packages.
- Artifact expire_in
- expire_in sets how long artifacts are retained before deletion, such as one week or thirty days, controlling storage use for build outputs and reports.
- dependencies keyword
- dependencies lists which earlier jobs' artifacts a job downloads. Omitting it downloads artifacts from all jobs in previous stages, which can slow pipelines.
- parallel matrix
- parallel:matrix expands named dimensions into one job per combination, each receiving the dimension values as variables, enabling cross-version test grids.
- needs empty array
- Setting needs to an empty array makes a job start immediately without waiting for any stage, useful for fast lint or config checks.
- rules first match wins
- rules are evaluated in order and the first matching rule sets the job's attributes; a matching rule with when: never excludes the job.
- rules changes caveat
- rules:changes compares against the previous commit on branches and the target branch on merge requests, and always evaluates true on new branches and schedules.
- when delayed
- when: delayed postpones a job by a start_in duration such as thirty minutes, often used to stage a timed deployment after a manual gate.
- Trigger strategy depend
- With strategy: depend, the parent trigger job mirrors the downstream pipeline's status instead of succeeding as soon as the downstream pipeline is created.
- Child pipeline
- A trigger job with include starts a child pipeline from a generated or static YAML file; it appears nested in the parent pipeline graph.
- Protected environment
- A protected environment restricts deployments to permitted roles and branches, and jobs deploying to it can access protected variables and require approvals.
- CI Lint endpoint
- The /ci/lint page and the projects/:id/ci/lint API validate pipeline YAML, catching syntax errors, duplicate keys, and unresolvable references before merging.