mirror of
https://gitcode.com/JianFeeeee/homeagent-sdk.git
synced 2026-09-29 22:05:25 +00:00
## 缺口 本仓此前**只有 release.yml**(只在 release/** 推送时跑)。也就是说 推 main、开 PR 一律无检查,而 SDK 正是外部插件开发者直接依赖的契约面 (sdk/plugin.go 接口一破,所有外部插件编译失败)。 ## 四个 job(每条命令都本地实测过) | job | 内容 | 实测耗时 | |---|---|---| | go | 根模块 build + vet + test | <1s | | hmapdev | 嵌套 module 测试 + 五平台交叉编译(矩阵) | ~2s + 编译 | | examples | 构建全部 20 个示例(linux/amd64、darwin/arm64) | 9s / 21s | | consistency | Lua SDK 三副本一致 + skills 可识别 + mkdocs --strict | ~2s | ## 三处「不能想当然」的地方(都有实测依据) 1. **示例不能用 `go build` 验**。它们是插件(只有 plugin.go、没有 func main), 必须由 hmapdev 注入 main 包装;直接 go build 得到 "function main is undeclared in the main package" —— 那不是缺陷,是方式不对。 故与发版走**同一个脚本**(package/build-examples.sh),避免 CI 与发版路径分叉。 2. **tools/hmapdev 是独立 module**,根模块的 `go test ./...` 不会进入它 —— 必须单独跑,否则它的测试永远不在 CI 里执行(Go 的模块边界)。 3. **不能用 `yaml.safe_load` 校验 mkdocs.yml**:它含 mkdocs-material 的 `!!python/name:` 标签(配置 emoji 的官方写法),safe_load 报 ConstructorError —— 是校验方式不对。改用 `mkdocs build --strict` (本地实测 2s、0 warning)。 ## 明确不进 CI - `hmapdev skill install` —— 它会写开发者本机的 ~/.claude、~/.codex 等目录 - 需要内核仓在场的检查(本仓独立可测) - 任何网络/真机依赖 CGO_ENABLED=0(SDK 纯 Go,与主仓相反)。 actionlint 全绿(修掉一处 shellcheck SC2012)。