Skip to content

ci: expand lightweight validation and parallelize web checks - #480

Merged
youzi-1122 merged 2 commits into
mainfrom
chore/ci-web-shards
Oct 8, 2026
Merged

youzi-1122 merged 2 commits into
mainfrom
chore/ci-web-shards

Conversation

@youzi-1122

@youzi-1122 youzi-1122 commented Oct 8, 2026 •

Copy link
Copy Markdown
Member

Summary

Documentation and GitHub template changes unnecessarily ran application checks, while the web job ran all selected DOM tests and the build sequentially. PR #478 spent 208 seconds in that job: 47 installing dependencies, 123 testing, and 28 building.

  • Classify changes by known non-runtime locations and file types. Root prose, audited module READMEs, documentation and its images, and Issue/PR templates use lightweight validation on PRs and main pushes. Runtime Markdown (including the APM guide imported by the frontend), code, dependencies, workflows, configuration, mixed changes, and unknown paths retain full checks. Renames include both paths; unavailable history falls back to full checks.
  • Validate Issue Form/chooser YAML and common fields without installing dependencies. Lightweight runs retain whitespace checks, commit-policy tests and CI-routing regressions; skip Go, npm, and Helm/build checks. Windows cross-build uses the same classifier when its workflow runs.
  • Run the existing 22 frontend test files on two independent runners (14 APM and 8 platform), retaining serial file execution within each. Run the existing frontend build once on a third runner. Preserve web test + build as an aggregate check that fails if any child fails, is cancelled, or is skipped.

Validation

  • make check-issue-templates test-ci-docs-only test-commit-policy passed. Regressions cover real Git diffs, document images, renames/deletions, mixed and unknown paths, runtime Markdown, invalid templates, whitespace errors, and aggregate outcomes.
  • Actionlint v1.7.12 and git diff --check passed for both workflows.
  • Compared the old test selection with the new Make targets: the same 22 files, no overlap, APM and Kubernetes in different groups, and one build. Existing Go and deployment commands are retained for full runs.
  • GitHub CI run 37755426656 passed: APM 14 files / 75 tests, platform 8 files / 75 tests, one successful production build, Go build/vet/race and deployment checks. Windows cross-build also passed.
  • Web elapsed time was 107 seconds, measured from the first matrix job starting to the aggregate check completing, including installation/build/queue time. The prior PR #478 web job took 208 seconds. This is one observed comparison (~49% lower elapsed time), not a guaranteed speedup across runner or source changes.
  • Individual web jobs: APM 102 seconds (37 install, 52 tests), platform 78 seconds (32 install, 36 tests), build 99 seconds (85 install + build), aggregate 2 seconds. All 150 prior tests remain covered.
  • The lightweight path is covered by the real-Git regression checks; this PR itself correctly ran full CI because it changes workflows and scripts. No application UI changed; no browser validation is needed. React act-warning cleanup is outside this change.

Risk and rollback

Parallel jobs repeat dependency installation and use more concurrent runner capacity. The documentation allowlist is intentionally conservative; new documentation locations or runtime imports require updating the classifier. Template validation covers common fields, not every GitHub schema option. Existing required check names remain stable. Revert this PR to restore the previous serial web job and narrower PR-only documentation classification; no branch-protection changes are required.

Author confirmation

@youzi-1122
youzi-1122 requested a review from singchia as a code owner October 8, 2026 09:15
@youzi-1122
youzi-1122 merged commit 6d0dd65 into main Oct 8, 2026
10 checks passed
@youzi-1122
youzi-1122 deleted the chore/ci-web-shards branch October 8, 2026 09: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.

1 participant