Skip to content

ci: skip the heavy unit-tests suite for docs-only pull requests - #15699

Merged
Maffooch merged 1 commit into
bugfixfrom
claude/unit-tests-docs-paths
Aug 18, 2026
Merged

ci: skip the heavy unit-tests suite for docs-only pull requests#15699
Maffooch merged 1 commit into
bugfixfrom
claude/unit-tests-docs-paths

Conversation

@Maffooch

@Maffooch Maffooch commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

[sc-14594]

Problem

A pull request that changes only docs/ still triggers the entire unit-tests matrix — docker image builds, REST framework tests, the full UI/integration suite, k8s deployment, and performance tests — and re-runs it on every push. That is a large amount of runner time spent on changes that cannot affect any of those tests.

Fix

Add paths-ignore: ['docs/**'] to the pull_request trigger of unit-tests.yml. Because paths-ignore only skips a PR whose changes are entirely under docs/, a PR that touches any code alongside docs still runs the full suite — this never under-tests real changes.

Why this is safe (required checks)

  • The filter is on the pull_request trigger only. The merge_group trigger is left unfiltered, and GitHub ignores paths/paths-ignore for merge_group events, so a docs-only PR is still built and tested in full when it enters the merge queue, and the required Unit Tests Complete check is still produced there. No "skipped but required" check hangs the PR.
  • The PR-level required check ruff-linting runs from its own workflow (ruff.yml), unaffected by this change.

Net effect: docs-only PRs skip redundant per-push runs during review, and are still fully tested at merge time via the queue. No test coverage is lost.

🤖 Generated with Claude Code

A pull request that only touches docs/ triggered the full unit-tests
matrix (docker builds, REST framework, UI/integration, k8s, performance)
on every push. Add paths-ignore: ['docs/**'] to the pull_request trigger
so an exclusively-docs PR skips it. A PR that touches any code alongside
docs still runs the full suite.

This is scoped to the pull_request trigger only. The merge_group trigger
stays unfiltered because GitHub ignores paths/paths-ignore for
merge_group events, so a docs-only PR is still built and tested in full
when it reaches the merge queue and the required `Unit Tests Complete`
check is still produced there. The PR-level required check `ruff-linting`
runs from its own workflow and is unaffected.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Maffooch
Maffooch requested a review from blakeaowens as a code owner August 18, 2026 03:59
@Maffooch Maffooch added this to the 3.2.201 milestone Aug 18, 2026
@Maffooch
Maffooch added this pull request to the merge queue Aug 18, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Aug 18, 2026
@Maffooch
Maffooch added this pull request to the merge queue Aug 18, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Aug 18, 2026
@Maffooch
Maffooch added this pull request to the merge queue Aug 18, 2026
Merged via the queue into bugfix with commit bb71983 Aug 18, 2026
48 checks passed
@Maffooch
Maffooch deleted the claude/unit-tests-docs-paths branch August 18, 2026 09:27
Maffooch added a commit that referenced this pull request Aug 18, 2026
…5712)

The paths-ignore filter added this morning (#15699) skipped the whole
unit-tests workflow on docs-only pull requests, so the required
`Unit Tests Complete` context was never created and sat as
"Expected -- waiting for status to be reported" forever. A pull request
must pass its required checks before it can be added to the merge
queue, so docs-only PRs (#15710, #15711) became unqueueable for anyone
without ruleset bypass. The change assumed the merge_group run would
satisfy the requirement, but that run only happens after the PR enters
the queue.

Keep the CI savings by moving the skip from the trigger to the jobs:
a `changes` job lists the PR's files and outputs docs_only, the heavy
build/test chain skips when it is true, and the unit-tests-complete
gate accepts skipped dependencies only in that case. The gate now
reports success in seconds on docs-only PRs instead of never, and
merge_group runs still execute the full two-platform matrix because
docs_only is only computed on pull_request events.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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.

3 participants