小程序编译、打包、预览均需要依赖开发者工具进行,且团队中成员均需要开通代码仓库权限,比较繁琐。故在官方论坛中找到以下 CI 集成插件,并结合 jenkins 做成了自动打码,详细介绍如下
miniprogram-ci 是从微信开发者工具中抽离的关于小程序/小游戏项目代码的编译模块。开发者可不打开小程序开发者工具,独立使用 miniprogram-ci 进行小程序代码的上传、预览等操作。
https://developers.weixin.qq.com/miniprogram/dev/devtools/ci.html
npm install -g miniprogram-ci
miniprogram-ci \
preview \
--pp ./demo-proj/ \
--pkp ./private.YOUR_APPID.key \
--appid YOUR_APPID \
--uv PACKAGE_VERSION \
-r 1 \
--enable-es6 true \
--proxy YOUR_PROXY \
--qrcode-format image \
--qrcode-output-dest '/tmp/x.jpg'
如报错,按报错提示解决即可
注意:我测试下来,必须安装OWASP Markup Formatter插件才能将Markup Formatter的设置更改为Safe HTML
#!/bin/sh -l
# 固定一个默认的appid
app_id="XXXXX"
# 判断上面的environment变量值,用于多环境打包判断
case $environment in
"qa")
app_id="XXX"
;;
"production")
app_id="XXX"
;;
esac
echo $app_id
echo "-----------当前所选环境为:$environment-----------"
echo "-----------当前环境所对应的appid为:$app_id-----------"
# 因为我这边项目有多个环境的配置文件,这里需要根据前面选择的环境来对应的选择配置文件,大家结合自己项目实际情况来就行
echo "-----------正在复制环境数据config-${environment}.js到config.js-----------"
cd /XXX/Live-Test-Miniprgram/config
sudo rm -f config.js
sudo mv config-${environment}.js config.js
echo "-----------环境数据复制完毕!!!-----------"
time=$(date "+%Y%m%d%H%M%S")
# 此处为ci插件的执行命令
miniprogram-ci \
preview \
--pp /XXX/Live-Test-Miniprgram \
--pkp /XXX/private.$app_id.key \
--appid $app_id \
--uv 1.0 \
--enable-es6 true \
--preview-page-path "${pagePath}" \
--qrcode-format image \
--qrcode-output-dest "/Qrcode_img/${time}.jpg"
1) 构建后操作添加一个 set build description
(\w*.jpg)
此处用于匹配日志中的二维码文件名
<h5>发布环境:$environment</h5> <h5>发布分支:$branch</h5> <img src ="图片存放目录\1" height="140" width="140" >
2) 构建后操作添加一个 Text Finders
Could not determine description
,见下方截图