#环境要求
- Node.js >= 20
- 包本身只提供 ESM 入口;CommonJS 脚本可通过
await import('@wot-ui/ci')调用
#安装
sh
# 项目内安装(推荐)
pnpm add -D @wot-ui/ci
# 或
# npm i -D @wot-ui/ci
# yarn add -D @wot-ui/ci也可以全局安装后直接使用 wotci 命令:
sh
pnpm add -g @wot-ui/ci不安装也可以在项目里临时运行:
sh
npx wotci -p weixin交给 AI Agent 一键接入:把下面这行原样发给你项目里的 Agent,它会装依赖、生成配置,并按你项目现有的发布方式接好上传(GitHub Actions、GitLab CI、Jenkins、自建流水线或纯 npm scripts 都适用):
text给这个项目接入 @wot-ui/ci 小程序 CI:用项目现有包管理器把 @wot-ui/ci 装成 devDependency,执行 wotci init 生成 wotci.config.ts,再把上传接到项目现有的发布方式里——已有 CI 就在它原有的流水线文件里加一个上传步骤,没有就用 npm scripts;appid 与私钥路径一律用环境变量或 CI secrets 注入,不要写进仓库,最后跑 wotci doctor 自检。文档见 https://github.com/wot-ui/ci
#快速开始
下面以微信小程序为例,三步完成第一次 CI 上传。
#准备配置文件
在项目根目录创建 wotci.config.ts:
ts
import { defineConfig } from '@wot-ui/ci'
export default defineConfig({
version: '1.0.0',
desc: 'CI 上传',
weixin: {
appid: process.env.WEIXIN_APPID!,
privateKeyPath: process.env.WEIXIN_PRIVATE_KEY_PATH ?? 'keys/weixin.private.key',
projectPath: 'dist/build/mp-weixin',
robot: 1,
},
})私钥是微信公众平台「开发管理 → 开发设置 → 小程序代码上传」生成的密钥文件。上传前需要把 CI 机器的出口 IP 加入白名单(或在公众平台关闭 IP 白名单)。
支付宝、钉钉的配置见 配置。
#构建并上传
sh
# 先构建小程序产物
pnpm build
# 上传(wotci 的默认命令就是 upload)
pnpm exec wotci -p weixin通常会把构建和上传组合成 npm scripts:
json
{
"scripts": {
"upload:mp-weixin": "uni build -p mp-weixin && wotci -p weixin",
"upload:mp-alipay": "uni build -p mp-alipay && wotci -p alipay",
"upload:mp-dingtalk": "uni build -p mp-dingtalk && wotci -p dingtalk"
}
}上传成功退出码为 0,失败为 1,可以直接作为 CI 步骤使用。
#上传前先体检
sh
pnpm exec wotci doctordoctor 会检查 Node 版本、配置来源、产物目录、project.config.json / app.json、私钥权限与 PEM 格式。加上 --network 还会调用线上接口,提前暴露 appid、私钥或 IP 白名单问题:
sh
pnpm exec wotci doctor --network注意:miniprogram-ci 的 getLatestVersion 只支持插件类型项目(miniProgramPlugin / miniGamePlugin)。普通小程序会跳过微信网络校验并给出 warn,不会阻塞上传。