Repository navigation
ci: the WebKit interaction lane runs the pager's proof for the pager files - #9377
Conversation
…paging files Co-authored-by: vjeux <197597+vjeux@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
AI review status for this pull request.
|
PR Analysis Report🔎 Preview ·
|
| Before | After | Change | |
|---|---|---|---|
| Job-minutes per PR update | 65.6 | 70.7 | +5.1 |
| Runner pool, runner-minutes a day | 27,180 | 29,279 | +2,099 (+7.7%) |
| Average concurrent jobs | 18.9 | 20.3 | +1.5 |
| Time to green (median → this run) | 15.7 min | 17.4 min | +1.8 min |
| Runs a day | 414 | 414 | 0 |
Changed jobs: pr-interaction-webkit changed: standard
Not measured (the jobs that use these keep their recent minutes above): .github/scripts/ci-interaction-webkit.test.mjs.
Assumptions: before is each job's average over the last 20 pull-request runs; after keeps that for unchanged jobs and uses this run's minutes for added or changed ones, weighted by how often each changed job ran in those runs; runs a day averages the seven whole days before today; time to green compares this run with the median of those runs that ran the same jobs.
Generated by PR Enrichment workflow | View full report
There was a problem hiding this comment.
Changes requested: the new scope starts the WebKit lane for the pager and Carousel-paging files, but the lane's run step (.github/workflows/ci.yml lines 2187–2194) still selects only the gesture, motion and harness specs, so neither pager spec would run in WebKit. Please add packages/core/src/hooks/__tests__/usePager.interaction to that run step and to the routing test's targets list. For Carousel paging, either drop it from the scope (its spec renders Storybook stories, which this lane keeps with the Chromium proofs) or add its spec and update the lane's comment. The new routing cases themselves are correct and fail against main as expected.
[Automated review]
| uses: ./.test-scope/.github/actions/test-scope | ||
| with: | ||
| paths: '^(packages/core/src/gestures/|packages/core/src/motion/|packages/core/src/internal/touch|packages/core/src/utils/(press|touch|primaryClick|isApplePlatform)|packages/core/src/hooks/(useMenuPress|menuPress|useLongPress|usePressFeedback)|internal/interaction-harness/|internal/a11y-spec/|playwright\.interaction\.config\.ts$|packages/themes/[^/]+/src/|apps/storybook/|\.github/workflows/ci\.yml$|package\.json$|pnpm-lock\.yaml$|\.github/actions/test-scope/)' | ||
| paths: '^(packages/core/src/gestures/|packages/core/src/motion/|packages/core/src/internal/touch|packages/core/src/utils/(press|touch|primaryClick|isApplePlatform)|packages/core/src/hooks/(useMenuPress|menuPress|useLongPress|usePressFeedback|usePager|__tests__/(usePager|pagerBundle))|packages/core/src/Carousel/(useCarouselPaging|__tests__/CarouselPaging)|internal/interaction-harness/|internal/a11y-spec/|playwright\.interaction\.config\.ts$|packages/themes/[^/]+/src/|apps/storybook/|\.github/workflows/ci\.yml$|package\.json$|pnpm-lock\.yaml$|\.github/actions/test-scope/)' |
There was a problem hiding this comment.
This starts the lane for the pager files, but the run step below (lines 2187–2194) still passes only the gesture, motion and harness targets to Playwright, so usePager.interaction.browser.spec.ts and CarouselPaging.interaction.browser.spec.ts never run in WebKit. Add packages/core/src/hooks/__tests__/usePager.interaction there and to the test's targets list. For Carousel paging, either drop the Carousel/(…) alternative or add its spec and revise the lane comment at lines 2068–2072, which keeps Storybook-rendering specs with Chromium.
There was a problem hiding this comment.
Changes requested: the new scope starts the WebKit lane for the pager and Carousel-paging files, but the lane's run step (.github/workflows/ci.yml lines 2187–2194) still selects only the gesture, motion and harness specs, so neither pager spec would run in WebKit. Please add packages/core/src/hooks/__tests__/usePager.interaction to that run step and to the routing test's targets list. For Carousel paging, either drop it from the scope (its spec renders Storybook stories, which this lane keeps with the Chromium proofs) or add its spec and update the lane's comment. The merge from main resolves the scope regex correctly, and the routing tests pass.
[Automated review]
| uses: ./.test-scope/.github/actions/test-scope | ||
| with: | ||
| paths: '^(packages/core/src/gestures/|packages/core/src/motion/|packages/core/src/internal/touch|packages/core/src/utils/(press|touch|primaryClick|isApplePlatform|flatTree|inputStream|clickGuard|selectionLock|coarsePointer)|packages/core/src/privateAttributes/hapticSwitch\.stylex\.ts$|packages/core/src/hooks/(useMenuPress|menuPress|useLongPress|usePressFeedback|isRtlElement)|internal/interaction-harness/|internal/a11y-spec/|playwright\.interaction\.config\.ts$|packages/themes/[^/]+/src/|apps/storybook/|\.github/workflows/ci\.yml$|package\.json$|pnpm-lock\.yaml$|\.github/actions/test-scope/)' | ||
| paths: '^(packages/core/src/gestures/|packages/core/src/motion/|packages/core/src/internal/touch|packages/core/src/utils/(press|touch|primaryClick|isApplePlatform|flatTree|inputStream|clickGuard|selectionLock|coarsePointer)|packages/core/src/privateAttributes/hapticSwitch\.stylex\.ts$|packages/core/src/hooks/(useMenuPress|menuPress|useLongPress|usePressFeedback|isRtlElement|usePager|__tests__/(usePager|pagerBundle))|packages/core/src/Carousel/(useCarouselPaging|__tests__/CarouselPaging)|internal/interaction-harness/|internal/a11y-spec/|playwright\.interaction\.config\.ts$|packages/themes/[^/]+/src/|apps/storybook/|\.github/workflows/ci\.yml$|package\.json$|pnpm-lock\.yaml$|\.github/actions/test-scope/)' |
There was a problem hiding this comment.
This starts the lane for the pager files, but the run step below (lines 2187–2194) still passes only the gesture, motion and harness targets to Playwright, so usePager.interaction.browser.spec.ts and CarouselPaging.interaction.browser.spec.ts never run in WebKit. Add packages/core/src/hooks/__tests__/usePager.interaction there and to the test's targets list. For Carousel paging, either drop the Carousel/(…) alternative or add its spec and revise the lane comment at lines 2068–2071, which keeps Storybook-rendering specs with Chromium.
…h the Chromium proofs The pager spec bundles its own page with esbuild, so it runs in WebKit like the gesture and motion specs. Carousel paging's spec renders its Storybook story, which this lane leaves to the Chromium proofs, so its files no longer start a WebKit run that would test nothing of theirs. Co-authored-by: vjeux <197597+vjeux@users.noreply.github.com>
There was a problem hiding this comment.
Changes requested: the run step now includes the pager's proof and Carousel paging stays with the Chromium proofs, but the scope misses two files the pager's page bundles. At the pager pull request's current head, usePager.ts imports packages/core/src/utils/sharedResizeObserver.ts (calling observeResize on every attach) and packages/core/src/hooks/useIsomorphicLayoutEffect.ts, so once it lands an edit to either would change what the WebKit proof runs without starting it, which the lane's own rule (ci.yml lines 2386–2388 and the bundle-reach note in ci-interaction-webkit.test.mjs) rules out. Please add both paths to the scope regex and the "runs for" cases, and add hooks/__tests__/pagerBundle.ts to the bundle-reach cases (skipped until the file exists, or in the pager pull request) so the next import it gains is caught.
[Automated review]
| uses: ./.test-scope/.github/actions/test-scope | ||
| with: | ||
| paths: '^(packages/core/src/gestures/|packages/core/src/motion/|packages/core/src/internal/touch|packages/core/src/utils/(press|touch|primaryClick|isApplePlatform|flatTree|inputStream|clickGuard|selectionLock|coarsePointer)|packages/core/src/privateAttributes/hapticSwitch\.stylex\.ts$|packages/core/src/hooks/(useMenuPress|menuPress|useLongPress|usePressFeedback|isRtlElement)|internal/interaction-harness/|internal/a11y-spec/|playwright\.interaction\.config\.ts$|packages/themes/[^/]+/src/|apps/storybook/|\.github/workflows/ci\.yml$|package\.json$|pnpm-lock\.yaml$|\.github/actions/test-scope/)' | ||
| paths: '^(packages/core/src/gestures/|packages/core/src/motion/|packages/core/src/internal/touch|packages/core/src/utils/(press|touch|primaryClick|isApplePlatform|flatTree|inputStream|clickGuard|selectionLock|coarsePointer)|packages/core/src/privateAttributes/hapticSwitch\.stylex\.ts$|packages/core/src/hooks/(useMenuPress|menuPress|useLongPress|usePressFeedback|isRtlElement|usePager|__tests__/(usePager|pagerBundle))|internal/interaction-harness/|internal/a11y-spec/|playwright\.interaction\.config\.ts$|packages/themes/[^/]+/src/|apps/storybook/|\.github/workflows/ci\.yml$|package\.json$|pnpm-lock\.yaml$|\.github/actions/test-scope/)' |
There was a problem hiding this comment.
At #8146's current head the pager's page also bundles packages/core/src/utils/sharedResizeObserver.ts (usePager.ts calls observeResize on attach) and packages/core/src/hooks/useIsomorphicLayoutEffect.ts; neither matches this regex. Adding sharedResizeObserver to the utils/(…) group and useIsomorphicLayoutEffect to the hooks/(…) group keeps the lane's bundle-reach rule (lines 2386–2388).
…dles usePager reads sharedResizeObserver and useIsomorphicLayoutEffect, so an edit to either changes what the pager's WebKit proof runs. A bundle-reach case for the pager's page runs once that page exists. Co-authored-by: vjeux <197597+vjeux@users.noreply.github.com>
There was a problem hiding this comment.
Looks good: the WebKit lane's scope now includes sharedResizeObserver and useIsomorphicLayoutEffect, so every file the pager's page bundles at the pager pull requests' heads starts the WebKit proof, and the new routing cases fail against the previous scope. The skipped bundle-reach case will check the pager's imports once pagerBundle.ts lands, so no further change is needed here.
[Automated review]
Maintainer impact
pr-interaction-webkit) runs for the press, touch and gesture code it guards. The pager hook (from vjeux's pager work) is touch-driven, so edits there should get the same real-WebKit proof.hooks/usePager, its browser spec and its bundle (hooks/__tests__/usePager,hooks/__tests__/pagerBundle), and its run includes the pager's proof (hooks/__tests__/usePager.interaction). That spec bundles its own page with esbuild, like the gesture and motion specs..githubchanges can't run with the repository's workflows, so the CI-scope change lands here on its own, credited to its author.Change
.github/workflows/ci.yml,pr-interaction-webkit:pathsaddshooks/(…|useIsomorphicLayoutEffect|usePager|__tests__/(usePager|pagerBundle))andutils/(…|sharedResizeObserver). Those two shared files are in the pager page's bundle at the pager pull request's head, so an edit to either changes what the proof runs;packages/core/src/hooks/__tests__/usePager.interaction;.github/scripts/ci-interaction-webkit.test.mjs:Evidence
sharedResizeObserveranduseIsomorphicLayoutEffectwere missing before.mainyet. Of the two shared files,sharedResizeObserverchanged twice in 90 days anduseIsomorphicLayoutEffectnever.ci-interaction-webkit,ci-interaction,workflow-pathsandci-tooling-routingtests pass (73 tests).mainuntil the pager lands (until then, Playwright's run finds the other targets as today). It also runs for the two shared files, which rarely change (twice in 90 days), so runner-pool use and time to green are unchanged today.Scope