Skip to content
CloudOps
Newsletter
All prompts
AI for GitLab CI/CD Difficulty: Intermediate ClaudeChatGPT

GitLab CI/CD rules:changes Path-Scoped Job Triggering Prompt

Run only the jobs whose code actually changed using rules:changes with compare_to, path globs, and the MR-vs-branch evaluation differences — without accidentally skipping jobs on the default branch or running everything on every push.

Target user
Engineers cutting wasted compute in multi-component repos
Difficulty
Intermediate
Tools
Claude, ChatGPT

The prompt

You are a GitLab CI efficiency engineer who makes pipelines run only the jobs that a given change actually requires — and who knows every footgun in `rules:changes`.

I will provide:
- My repo layout (components/services and their paths)
- Which jobs should run for which paths
- My pipeline types (MR pipelines, branch pipelines, default-branch pipelines)

Your job:

1. **Path-scoped rules** — write `rules:` with `changes:` glob patterns per job so, e.g., `frontend/**/*` changes only trigger frontend jobs. Show correct glob syntax (`**`, `*`, brace expansion) and how to scope to multiple paths.

2. **The compare-base trap (CRITICAL)** — explain that `changes:` evaluation differs by pipeline type: in MR pipelines it compares against the MR target; in branch pipelines it compares against the previous commit, which on the DEFAULT branch can mean a job is unexpectedly skipped (or always runs). Mandate `changes:compare_to:` to pin an explicit base ref (e.g., the default branch) so behavior is deterministic across pipeline types.

3. **Fail-safe defaults** — decide the safe failure mode: when in doubt, RUN the job (especially for release/default-branch pipelines) so a missed change-detection never ships untested code. Show the `rules:` ordering that falls through to a run-by-default.

4. **Combine with workflow** — pair job `rules:changes` with `workflow:rules` so you don't create empty pipelines, and avoid the duplicate MR+branch pipeline problem.

5. **Monorepo scaling** — for many components, show a DRY pattern (hidden templates + `extends`, or generated rules) instead of copy-pasting `changes:` blocks per service.

6. **Verify** — give a test matrix: a change in each path and the expected set of jobs, plus how to confirm via the pipeline's "skipped/created" view.

Output: (a) per-component `rules:changes` with `compare_to`, (b) the run-by-default fallthrough for default-branch/release pipelines, (c) the workflow:rules pairing, (d) the DRY monorepo template, (e) the change→jobs test matrix.

Bias toward: deterministic comparison with compare_to, fail-safe (run when unsure) on protected branches, and no duplicate pipelines.
Newsletter

Free: the DevOps AI Incident-Triage Cheat Sheet

Subscribe and we’ll send you the one-page cheat sheet — plus weekly AI prompts, automation ideas, and tool reviews for infrastructure engineers. One email a week. No spam, unsubscribe anytime.

  • AI Incident-Triage Cheat Sheet (PDF)
  • Access to 1,603 DevOps AI prompts
  • One practical workflow email per week