Skip to content

CI: fuzz pull requests only when the fuzzed code changes - #10

Merged
adamtty merged 1 commit into
mainfrom
smarter-ci
Oct 22, 2026
Merged

adamtty merged 1 commit into
mainfrom
smarter-ci

Conversation

@adamtty

@adamtty adamtty commented Oct 22, 2026

Copy link
Copy Markdown
Owner

Dependency and CI version bumps (like Renovate's PRs) no longer wait on a fuzz run.

What changes

  • A Changes job lists the pull request's files through the API (no third-party action) and sets flags for the jobs after it.
  • Fuzz runs on a PR only when the code it fuzzes or the fuzz harnesses / corpus change. Dependency and CI bumps skip it; they're fuzzed on main after merge and in a new weekly run.
  • Docs-only PRs (*.md, docs/, LICENSE) also skip the heavy build jobs, where the repo has any.
  • Pushes to main, the weekly schedule and manual runs still run everything.

Why it can't silently skip a required check

  • A job skipped by its if: reports success, so required checks don't block the merge.
  • The condition is !cancelled() && needs.changes.outputs.x != 'false'. If the Changes job fails, or the file list can't be read, everything runs.
  • Matrix jobs (Tests) aren't gated: a skipped matrix job never expands, so its required checks would never report.

This PR only touches ci.yml, so its own run should already show Fuzz skipped.

A Changes job lists the pull request's files and gates the expensive jobs:
fuzzing runs when the code it fuzzes or the fuzz harnesses / corpus change,
not for dependency or CI version bumps, and docs-only changes skip the heavy
build jobs. Pushes to main, a new weekly run and manual runs do everything.
A job is skipped only on an explicit "false", so if the Changes job fails,
everything runs.
@adamtty
adamtty merged commit 6303197 into main Oct 22, 2026
14 of 15 checks passed
@adamtty
adamtty deleted the smarter-ci branch October 22, 2026 21:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant