Skip to content

ci: fold fixture-contrast into test-build - #8916

Open
cixzhang wants to merge 4 commits into
mainfrom
ci/test-build-fixture-fold
Open

cixzhang wants to merge 4 commits into
mainfrom
ci/test-build-fixture-fold

Conversation

@cixzhang

Copy link
Copy Markdown
Contributor

Who this helps

Everyone opening a pull request: one fewer job per CI run, with no change to what is tested or when.

What changes

  • fixture-contrast ran two browser checks, the canonical setup compositions and the guest fixture contrast, on its own runner.
  • test-build already installs Playwright on the same runner type, under the same scope condition.
  • Those two steps now run at the end of test-build, and fixture-contrast is removed. Required contexts are unchanged: test still projects test-build's result.

Part 1 of 4 of the CI scope consolidation. Each part lands on its own, in order:

  1. this PR
  2. the test-scope action, used by interaction and native Swift
  3. the docsite, test and build owners
  4. the heavy lanes, and removal of the scope jobs

Line count

+13 / −20, net −7.

Verification

  • vitest run --project node .github/scripts: all pass.
  • ci-tooling-routing.test.mjs checks that the two steps live in test-build and inherit its Node-tooling skip.

The canonical setup compositions and the guest fixture contrast need a
production browser render, and test-build already installs Playwright on the
same runner under the same scope condition. Running them there drops a job
from every pull request without changing what runs or when.
@vercel

vercel Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
astryx Ready Ready Preview Oct 30, 2026 10:50am UTC

Request Review

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Meta Open Source bot. label Oct 30, 2026
@astracat-bot

astracat-bot Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

AI review status for this pull request.

Review status Updated
🟢 Reviewed (for maintainers only) Oct 30, 2026, 11:04 AM UTC

cixzhang added a commit that referenced this pull request Oct 30, 2026
…csite-test

#8888 was split into #8916-#8919 on main. This carries the one-job
docsite-test change onto #8919 as a 3-way merge against its v8: the
docsite jobs are identical there, so the delta applies unchanged.

@astracat-bot astracat-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks ready to merge once a fresh CI run passes: moving the two vibe-tests browser checks into test-build keeps the same checks under the same scope condition and permissions, every required check still reports, and the folded job should take roughly 6–7 of its 15 minutes. Consider noting one consequence in the description: a fixture failure now fails the required test check (before, it only turned the non-required fixture-contrast job red), and a pnpm test:build failure now skips both fixture steps for that run. The only CI run on this head was cancelled before the moved steps finished, so it needs a new run.

[Automated review]

Comment thread .github/workflows/ci.yml Outdated

# The vibe-tests fixtures share this Playwright-equipped runner: the
# canonical setup compositions and the guest fixture contrast need a
# production browser render (registry scope test-theme-e2e).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nothing in the repository defines a registry scope named test-theme-e2e; this comment is its only occurrence, so the parenthetical points readers at nothing. Consider dropping it, or naming the file that defines the scope once one does.

Comment thread .github/workflows/ci.yml
# The vibe-tests fixtures share this Playwright-equipped runner: the
# canonical setup compositions and the guest fixture contrast need a
# production browser render (registry scope test-theme-e2e).
- name: Verify canonical setup compositions

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Optional: these two steps use the default success condition, so when pnpm test:build fails they are skipped and the run reports nothing about the fixtures, where the separate job still did. If you want that signal back, if: ${{ !cancelled() }} on both steps restores it; test-build, and with it test, still fails either way.

@astracat-bot astracat-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks — folding fixture-contrast's two checks into test-build is a clean consolidation: both verification steps keep the same runner and scope condition, and the required test check still projects the result.

One change before this is ready: the new comment's (registry scope test-theme-e2e) names a scope that exists nowhere in the repository, so it points readers at nothing — please drop it or name the real scope.

Optionally, because the two steps use the default success condition, a pnpm test:build failure now skips them for that run; adding if: ${{ !cancelled() }} to both restores the independent fixture signal if you want it (the test check still fails either way).

[Automated review]

Comment thread .github/workflows/ci.yml Outdated

# The vibe-tests fixtures share this Playwright-equipped runner: the
# canonical setup compositions and the guest fixture contrast need a
# production browser render (registry scope test-theme-e2e).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(registry scope test-theme-e2e) names a scope that exists nowhere in the repository — test-theme-e2e appears only on this line, so it points readers at nothing. Drop the parenthetical, or name the real scope/surface these checks belong to.

@astracat-bot astracat-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks ready to merge: both vibe-tests browser checks now run at the end of test-build under the same runner, scope condition and permissions, every required check still reports, and the comment above them no longer names a scope that does not exist. Consider noting in the description that a fixture failure now fails the required test check and that a pnpm test:build failure skips both fixture steps for that run; if: ${{ !cancelled() }} on both steps would keep their signal. No CI run has completed the folded job on this pull request yet.

[Automated review]

@astracat-bot astracat-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks ready to merge: after the merge with main, both vibe-tests browser checks run at the end of test-build behind the same scope condition, permissions and per-author heavy-suite caps, and the heavy-job contract now expects only pr-interaction and test-build. Consider updating the description: its +13/−20 count predates the merge, and it leaves out that a fixture failure now fails the required test check. If you want the fixture result back when pnpm test:build fails, condition both steps on the Playwright install's outcome (if: ${{ !cancelled() && steps.<id>.outcome == 'success' }}) rather than !cancelled() alone, which would now also start them after a heavy-suite hold. No CI run has completed on this revision yet.

[Automated review]

Comment thread .github/workflows/ci.yml
# The vibe-tests fixtures share this Playwright-equipped runner: the
# canonical setup compositions and the guest fixture contrast need a
# production browser render.
- name: Verify canonical setup compositions

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Optional: to keep the fixture result when pnpm test:build fails, give Install Playwright an id and put if: ${{ !cancelled() && steps.<id>.outcome == 'success' }} on both steps. Now that test-build starts with the heavy-suite caps, !cancelled() alone would also start these steps after a hold or a failed setup, where they fail for unrelated reasons beside the real error.

This branch was successfully deployed

1 active deployment
Preview — 1db319ed Deployed Oct 30, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Meta Open Source bot.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant