ci: skip CI for docs-only pull requests#53
Merged
Conversation
Convert .buildkite/pipeline.yml into a bootstrap that conditionally uploads the full pipeline (moved verbatim to .buildkite/pipeline.steps.yml, same blob). The gate skips CI only for docs-only PRs (*.md/*.txt/README*/LICENSE/docs); every non-PR build and any non-docs change runs the full pipeline. Bootstrap auto-retries on agent loss. Modeled on percy-api#6355. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The previous gate skipped only PR builds (BUILDKITE_PULL_REQUEST). Repos whose Buildkite builds run on branch push (PR context absent) would therefore never skip. Gate on branch instead: always run full CI on the default branch and known deploy branches (percy_pre_prod / pre_master), otherwise diff and skip docs-only changes. Works for both branch and PR builds. Bootstrap retry and the verbatim pipeline.steps.yml move are unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
Author
Claude Code PR ReviewPR: #53 • Head: f1f98b1 • Reviewers: stack:pr-review (direct) SummaryCI-only change: bootstrap pipeline conditionally uploads the full pipeline, skipping CI for docs-only PRs; gate is shell-safe and fail-safe, and the full pipeline is a verified byte-identical move. Review Table
FindingsNone. Verdict: PASS |
rishigupta1599
approved these changes
Jul 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Skip the Buildkite CI suite on pull requests that change only documentation (
*.md,*.txt,README*,LICENSE,docs/**). Same mechanism already shipped for percy-api (percy/percy-api#6355).How
Buildkite resolves
if:/skip:at upload time, so a runtimegit diffcan't drive them — hence a dynamic (nested) upload:.buildkite/pipeline.yml→ small bootstrap step that runs the gate script..buildkite/pipeline.steps.yml→ the previous full pipeline, moved verbatim (identical git blob — this is a pure move, not a rewrite)..buildkite/scripts/upload-pipeline.sh→ diffs the PR vs its base and uploads the full pipeline unless the change is docs-only.Safety
masterand any deploy branch) always runs the full pipeline — deploys are never gated on docs detection.-1/125/255).Verify before merge
.buildkite/pipeline.yml(the default). If the pipeline is defined inline in the BK UI instead, the bootstrap is a no-op (harmless).buildkite/<pipeline>build status (a docs-only build passes green). If a specific per-step context is required, we'd add a synthetic pass.Left as draft until the two points above are confirmed.
🤖 Generated with Claude Code