logo
0
0
WeChat Login

feat(ci): 接入 CNB 流水线 + 7 个 POSIX shell 自举检查脚本#29

Merged
created 2 weeks ago
main
feature/ci-pipeline-self-hosted
Edit
OverviewCommits
2
Files changed
13
Attachments

新建 .cnb.yml(7 stages,push / merge_request 双触发),把 quality-dashboard.md §七
的所有门禁命令绑定到 CNB runner,关闭 CHECKPOINT §五 T-02。

新建 scripts/ci/:

  • README.md 脚本清单 + 棘轮阈值来源说明
  • check-py-compile.sh P0 #1 真实编译(py_compile 全部 .py)
  • check-unittest.sh P0 #3 单元测试 + P0 #4 上下文加载(--list-stacks)
  • check-skill-meta.sh P0 #7/#8 skills _meta.json 契约合规
  • check-coverage.sh P1 #10/#11/#12 覆盖率棘轮硬阈值(87/84/94)
  • report-derivation.sh P1 #15 规则派生声明 100% 覆盖
  • report-tech-debt.sh P1 #14 技术债观测(不阻塞,避免自指)
  • report-abstraction.sh P1 #16 抽象化残留观测(不阻塞,人工分类)

硬约束遵守情况(派生自 cicd-pipeline/SKILL.md §CI 脚本的跨 shell 兼容):

  • 所有多行 shell 逻辑都抽到 .sh,YAML 不内联
  • 每个 .sh 以 #!/bin/sh + set -eu 开头
  • 提交前跑过 sh -n 与 dash -n 静态检查(7/7 全部通过)
  • 本地实跑 7 个脚本结果与 CHECKPOINT §一 基线完全一致:87/84/94/20/12/16
  • 镜像 python:3.12-slim 固定版本;jsonschema==4.23.0 / coverage==7.13.5 pin 版本

.gitignore 新增 .coverage* 避免覆盖率临时文件被提交。

派生自 meta-principles.md §原则 1(真实编译优先——py_compile 语义等价)、
§原则 2(不可执行的测试=负价值——脚本提交前 sh -n + 实跑双验证)、
§原则 3(棘轮质量阈值——硬阈值写死在脚本里只能上调不能下调)、
§原则 5(契约优先——_meta.json 校验阻塞合并)

Refs: CHECKPOINT §五 T-02(闭环)、T-06(push/MR 重复的后续优化)

is using the merge method to merge into2ee6f2e1
added 2 commits
合并来自 feature/ci-pipeline-self-hosted 的合并请求 #29
docs(checkpoint): 回填 PR #29 CNB 首绿实测 + 事实更正 + 隐藏 bug 记录

Successfully merged and closed

branch can be safely deleted
Reviewer
None yet
Assignee
None yet
Label
None yet
Participant