配置 Jenkins 脚本部署微信小程序,核心是调用微信官方提供的 miniprogram-ci 命令行工具在 Jenkins 构建节点执行上传操作。适合需要频繁迭代预览的开发场景,风险边界在于密钥文件不能提交到代码仓库且构建节点需安装 Node.js 环境。
先说结论:通过 Jenkins 执行 Shell 脚本调用微信 CLI 工具完成代码上传和预览生成。
- 适合:团队需要自动化构建预览版或体验版小程序
- 先准备:在微信后台生成 CI 密钥并下载私钥文件
- 验收:Jenkins 构建成功后在微信后台验证版本号
命令速用版
在 Jenkins 构建节点的 Shell 执行框中,先安装依赖包,再执行上传脚本。
npm install -g miniprogram-ci
具体上传命令需配合项目路径和密钥文件路径,参考官方文档参数。
为什么会这样
微信开放了服务端 CLI 能力,允许非 IDE 环境进行代码编译和上传。
微信小程序原生开发依赖开发者工具,但自动化流程无法人工操作 GUI。微信官方提供了 Node.js 版本的 CI 工具包,支持在服务器环境下完成代码压缩、上传和预览链接生成,Jenkins 作为自动化服务器正好匹配此运行环境。
分步处理
步骤 1:获取 CI 密钥
登录微信公众平台,在版本管理页面找到 CI 密钥设置,生成密钥并下载私钥文件。此文件相当于密码,严禁提交到 Git 仓库。
步骤 2:配置 Jenkins 环境
确保 Jenkins 构建节点已安装 Node.js 环境。将下载的私钥文件上传到 Jenkins 服务器的安全目录,并在 Jenkins 凭证管理中记录密钥路径或内容。
步骤 3:编写构建脚本
在 Jenkinsfile 或构建步骤中添加 Shell 脚本。脚本需引用 miniprogram-ci 包,指定项目路径、版本号、私钥路径和项目 AppID。
步骤 4:配置构建参数
设置构建参数化过程,允许动态输入版本号或分支名,避免每次修改脚本。
怎么验证是否生效
查看 Jenkins 控制台输出是否有成功返回的预览链接或上传成功日志。
登录微信公众平台后台,进入版本管理列表,检查是否存在对应版本号的开发版或体验版记录。
常见坑
私钥权限泄露:私钥文件拥有上传代码权限,若泄露可能导致恶意代码上传。建议限制 Jenkins 服务器访问权限,私钥文件设置为仅读取。
Node.js 版本不兼容:miniprogram-ci 工具对 Node.js 版本有要求,公开资料中没有看到可靠的量化数据说明具体版本兼容性,建议参考工具包 package.json 中的 engines 字段。
路径编码问题:Windows 构建节点可能出现路径编码错误,导致找不到文件。建议统一使用 Linux 构建节点或检查路径字符串格式。
常见问题
CI 密钥在哪里生成?
在微信公众平台后台的版本管理页面中,找到 CI 密钥设置选项进行生成。
支持自动发布上线吗?
官方 CI 工具主要支持上传代码和生成预览,正式发布的审核步骤通常仍需人工在后台确认。
私钥文件可以放在代码仓库吗?
不可以,私钥文件必须排除在版本控制之外,通过 Jenkins 凭证或安全卷挂载方式注入。
参考来源
微信官方文档 - 小程序 CI/CD 接入 https://developers.weixin.qq.com/miniprogram/dev/devtools/ci.html