GitHub Hosted CI
当前仓库已切换为 GitHub Hosted Runner,不再依赖仓库私有 self-hosted runner。
当前运行环境
- Runner:
ubuntu-latest - Workflow:
.github/workflows/ci.yml - 触发条件:
- push 到
main - 提交到
main的 pull request
- push 到
当前 CI 检查项
Go checks
gofmt格式校验go mod tidy漂移检查go vet- 单元测试与覆盖率门槛检查
- 标准二进制构建
- WeKnora tag 构建
Module checks
internal/modules/...构建与测试internal/platform/...构建与测试internal/services/...构建与测试internal/handlers/...构建与测试
SDK checks
sdk依赖安装- SDK lint
- SDK test
- SDK build
- SDK 同步到 demo 后的工作区漂移检查
Website worker checks
apps/website-worker依赖安装- TypeScript type check
Integration
- 使用
docker compose拉起 WeKnora 集成环境 - 健康检查轮询
- 执行
scripts/test-weknora-integration.sh - 失败时输出 compose logs
Deploy jobs
以下任务仅在 main 分支运行,且依赖 Cloudflare secrets:
- Cloudflare Workers 部署
- Cloudflare Pages 部署
需要的仓库 Secrets
CLOUDFLARE_API_TOKENCLOUDFLARE_ACCOUNT_ID
可选仓库 Variable:
CF_PAGES_PROJECT
设计取舍
- 不再要求维护额外 runner 主机,减少运维成本
- CI 改为显式失败,不再通过
make test中的吞错逻辑掩盖问题 - 将 Go、SDK、worker、integration 拆成独立 job,便于定位失败点
- 保留部署 job,但通过 secrets gate 和变更检测避免无效发布
后续可继续补的检查
golangci-lint- 文档站点实际构建检查(等 VuePress 配置入仓后再加)
- OpenAPI/contract drift check
- 更细粒度的 integration matrix