Skip to content

ci: parallelize and path-filter browser regressions - #157

Merged
matsuzaka-yuki merged 5 commits into
LyraVoid:mainfrom
yCENzh:work
Oct 27, 2026
Merged

matsuzaka-yuki merged 5 commits into
LyraVoid:mainfrom
yCENzh:work

Conversation

@yCENzh

@yCENzh yCENzh commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Run the comments-disabled, Waline, and Twikoo comment fixtures as a three-way matrix instead of serially, while preserving the Comment regressions check name for branch protection.
  • Run both browser suites for source, dependency, and runtime/build configuration changes. Only explicit documentation-only or unit-test-only paths skip the browser suites; fixture-only changes run the comment suite, and unknown paths fail closed by running both suites.
  • Read Git's changed paths as NUL-delimited data so Unicode, whitespace, and newline-containing filenames are classified without quoting or splitting errors.
  • Keep code quality, diagnostics and unit tests, frozen dependency installs, and Node 22/24 production builds enabled for every change.
  • Run all browser suites for manual dispatches and new-branch push events; fail stable regression checks if path detection fails or emits invalid outputs.

Follow-up: PR check annotation fixes

  • Fixed all Biome findings emitted by the original PR run 40177473350; the full source check now reports no diagnostics across 443 files.
  • Updated pinned GitHub Actions to Node.js 24-compatible releases (actions/checkout v7.0.1, actions/setup-node v7.1.0, pnpm/action-setup v6.1.0), retaining immutable commit-SHA pins.
  • Pinned the workflow runner to ubuntu-24.04 to avoid the ubuntu-latest migration notice during the Ubuntu 26 rollout.
  • Kept the existing non-blocking Biome policy (continue-on-error: true) and Playwright channel: "chrome" unchanged.

Follow-up: path-filter review fixes

  • Added dependency manifests, .npmrc, tsconfig*.json, and root runtime/build configs (including biome.json, pagefind.yml, frontmatter.json, vercel.json, and lighthouserc.cjs) to the two-suite trigger group.
  • Limited comment-only fixture changes to tests/fixtures/*; tests/site/* continues to select both suites.
  • Switched to git diff --name-only --no-renames -z, using a temporary file and NUL-delimited reads; a failed diff now fails the path-detection step before it can emit skip outputs.
  • Made the classifier fail closed: only explicit docs and unit-test paths are fast paths; unknown paths select both suites. Fixture matching precedes docs/config handling, so a fixture named site.config.ts selects only the comment suite rather than being promoted to both suites by a broad config glob.
  • Added repeatable classifier tests in tests/ci-path-filter.test.mjs for Unicode names, root config files, fast paths, fixtures, renames, unknown paths, mixed-path aggregation, and failed diffs.
  • Updated docs/on-demand-loading.md to describe the three parallel comment-fixture legs.

Validation

  • Original PR run: all 10 checks passed in 7m36s (workflow run).
  • Follow-up local validation: Biome clean (443 files); Astro check 0 errors/0 warnings; Svelte check 0 errors; manifest checks pass; unit tests 681/681; type-check passes with only the documented four TS9013 exceptions; Node 22 production build completed (47 pages).
  • Previous path-filter PR CI before the latest review fixes: all 10 checks passed (run 40201067542); all 10 check-runs had 0 annotations.
  • Latest local validation: classifier regression tests 27/27 passed (including Unicode filenames with core.quotePath=true, root configs, paths matched by the safe fast paths, unknown-path fail-closed behavior, and failed-diff handling); workflow YAML parsed; Bash syntax check and git diff --check passed. The normal PR checks validate each pushed revision.

@matsuzaka-yuki matsuzaka-yuki left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All 10 checks pass, including the three comment matrix legs and the required aggregator check. The classifier fails closed, preserves branch-protection check names, and covers renames, unknown paths, and diff failures with 27 passing tests. The fixture-only classification and unrelated cleanup can be revisited separately; no blocker for this merge.

@matsuzaka-yuki
matsuzaka-yuki merged commit dd1b782 into LyraVoid:main Oct 27, 2026
10 checks passed
@yCENzh
yCENzh deleted the work branch October 27, 2026 14:18
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.

2 participants