Skip to content

ci: split validation into responsibility groups - #454

Merged
wimi321 merged 3 commits into
wimi321:mainfrom
qiyi71w:plan/ci-responsibility-split
Sep 11, 2026
Merged

ci: split validation into responsibility groups#454
wimi321 merged 3 commits into
wimi321:mainfrom
qiyi71w:plan/ci-responsibility-split

Conversation

@qiyi71w

@qiyi71w qiyi71w commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Split regular CI into five independent jobs: repository checks, portable script tests, Windows script tests, Linux Java verification, and Windows Java verification. Failures in one responsibility no longer prevent the other jobs from producing results.
  • Add ci-required, which directly requires all five jobs to succeed. Retain build and windows-script-validation as real aggregate checks during the branch-protection migration.
  • Add responsibility groups to the shared local CI entrypoint and both shell wrappers. Resolve tools only for the selected group and keep non-Java runs from clearing or reporting stale JUnit results.
  • Preserve full Linux/Windows Maven verification, Windows credential checks, shaded-JAR logging smoke coverage, JaCoCo artifacts, and the release publisher's exact-SHA ci.yml push gate.
  • Document the boundaries between deterministic UI regression tests, native Windows desktop acceptance, real GPU acceptance, and complete package validation.

Type Of Change

  • Refactor
  • Docs / translation

Testing

  • Local full portable verification and native Windows verification completed; existing command, environment, and platform coverage compared against the baseline.
  • Java-free script/repository execution, both wrappers, JUnit isolation, and missing-coverage failure behavior verified.
  • actionlint passed; aggregate predicates exercised with success, failure, cancellation, skipped, missing, and unknown results locally.
  • Deterministic UI coverage inventory completed: 94 focused tests passed; four display-dependent tests were skipped under headless execution and are not counted as passed.
  • Local Standards and Spec reviews completed without outstanding in-scope findings.
  • Documentation links and line endings checked; no unrelated formatting changes.
  • Hosted failure/cancellation/skipped-job and documentation-only trigger scenarios completed.
  • All eight jobs pass on the final PR commit.

Local CI implementation evidence covers c1408902f27cd1d41bf543a4af05e9161991ee1e; specialized-acceptance documentation was committed as 73ff458877cfab79a2f15107c821c536a7ac0333. Final HEAD is 1a075a9bbd116d08ce443c02aac6e67d36254080, which replaces a maintenance-machine-only documentation link with public candidate build instructions. A tracked-only archive reproduced the broken link before the repair and passed afterward.

Hosted evidence

  • Final upstream PR run: all five execution jobs and three aggregates succeeded. Linux reported 4120 tests with 23 skipped; Windows reported 4119 tests with 49 skipped; zero failures/errors. Skips are not counted as executed passes.
  • Documentation-only fork PR run: the PR diff contains only Markdown files; all eight jobs ran and succeeded.
  • Failure and explicit cancellation: injected script failure did not prevent Linux Java verification from succeeding. Windows Java was cancelled and all three aggregates failed. This run also exposed the documentation link repaired in the final HEAD.
  • Isolated skipped dependency, attempt 2: Windows scripts skipped; all four other execution jobs and build succeeded. windows-script-validation and ci-required failed as required. Only the cancelled Windows Java job and its dependents were retried; completed independent results were retained.
  • Temporary fork PRs were closed without merging, remote drill branches deleted, and local failure injections removed. No drill changes entered this PR.

One separate observation remains: two temporary Windows runs stopped producing output inside PositionConfirmedRollbackTest before cancellation. Root cause is unconfirmed; the targeted Windows retry, final official run, and documentation-only run all passed full Windows verification. No Java test was changed or suppressed. This observation is retained for separate investigation, not presented as a diagnosed CI regression.

Native desktop DPI, real GPU, and full package acceptance were not rerun for this CI/documentation change.

Notes

Maintainer action: required-check migration

This PR preserves the existing required checks build and windows-script-validation and adds ci-required from GitHub Actions. No branch-protection change is needed before merging this PR.

After merging, please have wimi321:

  1. Confirm that the complete ci.yml push run for the corresponding main commit succeeds.
  2. Replace the two existing required checks with ci-required, selecting GitHub Actions as its source. Keep all other protection settings and unrelated required checks unchanged.

Both legacy aggregate jobs will remain until the effective protection configuration is verified. A separate follow-up PR will then remove only those two aggregates; the five execution jobs, their coverage, and the release CI gate will remain unchanged.

Share repository, script, and Java groups between local wrappers and five independent CI jobs. Isolate tool requirements and JUnit reports, and add ci-required while retaining both legacy aggregate checks during migration.

@qiyi71w qiyi71w left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

P1 — CI split matches the stated five-job layout, migration aggregators, and QA-boundary docs, without a review-blocking defect

Standards

No findings

Spec

No findings

Follow-up ledger

Owned by existing tickets

No entries

Candidates — Fix

No entries

Candidates — Diagnose

No entries

Closed

No entries

Open IN_SCOPE: 0
Owned: 0
Fix candidates: 0
Diagnose candidates: 0
Closed: 0

@qiyi71w
qiyi71w marked this pull request as ready for review September 11, 2026 02:13
@qiyi71w
qiyi71w requested a review from wimi321 as a code owner September 11, 2026 02:13

@wimi321 wimi321 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

感谢 @qiyi71w 将 CI 按职责拆分,并补齐专项验收边界与失败演练证据。维护者已在固定 HEAD 1a075a9 的干净独立工作树完成复核:三个 profile 拆分前后的执行命令与环境参数逐项一致;实际执行三个汇总门禁的 8,028 种成功、失败、取消、跳过、缺失及未知结果组合,均符合全成功才通过的规则;本机 JDK 21 portable 完整入口 26/26 通过,JUnit 共 4,119 项、0 failures、0 errors、46 skipped,Maven verify、shaded JAR 集成检查、覆盖率、链接、换行及工作区检查通过。线上固定 HEAD 的全部八项检查通过。未发现阻止本次 CI/文档变更合并的问题。此次没有重跑 Windows 原生桌面/GPU/完整发布包验收,不将跳过项计为通过。Windows PositionConfirmedRollbackTest 偶发停滞观察仍未确诊,不因本 PR 合并标记为已修复。合并后将先验证精确 main SHA 的 push CI,再只迁移 required status checks 到 GitHub Actions 的 ci-required,保留其他保护设置。

@wimi321
wimi321 merged commit 062a8cf into wimi321:main Sep 11, 2026
8 checks passed
@wimi321

wimi321 commented Sep 11, 2026

Copy link
Copy Markdown
Owner

合并与门禁迁移已完成。合并提交:062a8cf461bc2adf3e91112e542c8feb7ed3e463;精确 main SHA 的 push CI 八项全部成功:https://github.com/wimi321/lizzieyzy-next/actions/runs/34558971275 。随后已将 main 必需检查从 build / windows-script-validation 替换为 ci-required,并绑定 GitHub Actions(app_id 15368)。API 回读确认 strict=true,其他全部分支保护字段与变更前一致。旧汇总 job 暂时保留,按本 PR 约定后续可单独清理。本轮没有发布 Release,也未改动 #449。再次感谢 @qiyi71w 的实现、测试及维护文档。

@qiyi71w qiyi71w mentioned this pull request Sep 11, 2026
10 tasks
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