Repository navigation
ci: scope pull request checks to what the diff can affect - #8946
Conversation
A `changes` job classifies the pull request's files against explicit allowlists (.github/scripts/ci-changes.sh, replacing desktop-live-changes.sh): - content posts, author profiles and their public assets: lint, test, build - apps/docs: lint, test - apps/desktop: lint, test, desktop-live - agent guidance (.agents, .claude, .cursor, AGENTS.md, CLAUDE.md, root README): lint Any other file, any .github change, an empty diff, or a diff that cannot be worked out runs everything; pushes and dispatches always run everything. The live desktop suite keeps its own skip list, now including the content asset folders it previously missed. `ci` accepts a skip only when `changes` set that job's flag to exactly `false`, so a failed or skipped `changes`, or a lost output, fails it.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
No issues found across 6 files
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Heads up: you’ve reached your flex budget. Increase your flex budget or wait for usage to reset.
Turn on auto-fix | Re-trigger cubic
|
…ge flags The ci aggregator's skip rules now live in .github/scripts/ci-gate.sh, read from NEEDS, with table-driven tests covering every guard. The change-classifier test helper fails on any flag value other than exactly true or false.
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
No issues found across 8 files
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Heads up: you’ve reached your flex budget. Increase your flex budget or wait for usage to reset.
Turn on auto-fix | Re-trigger cubic
Summary
Every PR ran the full suite. A library post with one
.mdxand one cover.jpg(#8931) cost 107 job-minutes, about 755 vCPU-minutes, and took 21 minutes. Of the last 400 merged PRs, 75 were content-only, 7 desktop-only and 3 docs-app-only.A new
changesjob (2 vCPU, ~10s) runs.github/scripts/ci-changes.sh. It replacesdesktop-live-changes.shand its job, fetches only the PR's base commit, and outputs which job groups the diff can affect.apps/sim/content/**except.tsx, and content-only public assetsog-image.test.tschecks covers), build (next buildrenders every post)apps/docs/**apps/desktop/**.agents,.claude,.cursor,AGENTS.md/CLAUDE.md, root README)check:skills,check:guidance-refs).githubchange, an empty diff or a diff that can't be computedIt fails safe:
migrate→promotedeploy chain never runs on partial checks.packages/desktop-bridgeandbrowser-protocolrun everything, because 64 apps/sim files import them.ciaggregator accepts a skipped job only whenchangesset that job's flag to exactlyfalse. A failed or skippedchanges, or missing outputs, failsci.Effect: a content PR goes from about 755 to about 152 vCPU-minutes, and from 21 minutes of wall time to about 5.5.
Test plan
scripts/ci-changes.test.tsruns the real script against real git repos (20 cases, each guard checked by revert).github, so its own run must showchangeschoosing the full suite and every job running