ci(gates): test-coverage 的触发面补上门禁自身,否则改坏 files: 就没人跑这根闸
上一提交落地后立刻暴露这个口子:那次提交里新钩子显示 Skipped (no files to check), 因为它自己的 files: 不含 .pre-commit-config.yaml —— 也就是说,任何人改坏这一行 正则(哪怕只是打错一个字符),这根闸就永久静默停用,而提交照样全绿。这正是 本仓反对的"会静默失效的门禁",且已有先例处置:lv-conf-sync 与 bsp-err 都把 "门禁自身"写进触发面。 验证方式(不是只测绿的一半): - 改前:pre-commit run test-coverage --files .pre-commit-config.yaml → Skipped - 改后:同一命令 → 实跑并 Passed(约 45 s,28 套) 代价:以后改门禁配置要多等 45 秒——这种提交本来就是低频操作,值。 顺带修两处上一批留下的表述: - 口径 §8 的 YAML 块补同一个 files: 模式(保持与落库那份一致)。 - 该节抬头那句我上次写坏了:JS 里把续行写成独立表达式,导致"…README.md 里只挂 一行索引指向本文"这半句被丢掉,句子断在文档名上。已补全。 - 门禁说明 host-unit-tests.md 的触发面描述同步为"含门禁自身",并写明理由。 自查:doc-links --all --sections-strict 通过;改动文件 U+FFFD = 0、无 CRLF; 零代码改动故未跑 @build。未 push。
This commit is contained in:
@@ -606,9 +606,11 @@ repos:
|
||||
# 是同一类坑);宁可在没装组件的机器上被挡一次、看清 [ENV] 那行提示,也不要一根假绿的闸。
|
||||
# 本机与 CI runner 同一台;实测两份 VS 安装都自带该 exe(口径 §7 第 8 条已按实测更正)。
|
||||
# 口径 / 分母 / 基线 / 盲区详解都在 docs/测试说明/主机单测覆盖率口径.md,本处只留接线事实。
|
||||
# 触发面**含门禁自身**(.pre-commit-config.yaml):不带自身就等于谁改坏这根闸的 files:
|
||||
# 模式,它就再也不跑且无人察觉(同 lv-conf-sync / bsp-err 的既有做法)。
|
||||
- id: test-coverage
|
||||
name: 主机单测覆盖率(增量拦截:已覆盖行只增不减)
|
||||
entry: python scripts/check_test_coverage.py
|
||||
language: system
|
||||
files: ^(App/|Drivers/BSP/|test/host/|scripts/check_test_coverage\.py|scripts/test_coverage_baseline\.json)
|
||||
files: ^(App/|Drivers/BSP/|test/host/|scripts/check_test_coverage\.py|scripts/test_coverage_baseline\.json|\.pre-commit-config\.yaml$)
|
||||
pass_filenames: false
|
||||
|
||||
Reference in New Issue
Block a user