微信小程序多人开发的情况下,开发人员都只能在本机上发布体验版,且需要到小程序管理后台自行切换到自己发布的版本,会出现体验版本覆盖的问题。给开发测试带来问题。
miniprogram-ci 的发布,使得开发人员可以通过命令行上传小程序代码,二结合gitlab 的CI,开发人员就可以实现小程序自动发布。
实现目标:
1、代码提交到 master分支即自动上传小程序体验版。
2、每次上传代码自动递增修正版本号
3、提交代码的注释内容作为版本发布时的备注。
实现:
1、在小程序代码中新增一个version.txt内容为当前开发的小程序版本号前2位
1.0
2、在小程序管理后台申请代码上传私钥和配置IP白名单
3、在gitlab 服务上全局安装 miniprogram-ci ,如果没有按照nodejs先安装nodejs
4、.gitlab-ci.yml配置
先创建这两个文件
/home/mp-version/p.txt 内容为 1
/home/mp-version/v.txt 内容为 1.0
私钥放到相应的位置
/home/private-key/private.key
stages:
- build
job-prod:
stage: build
only:
- master
script:
- node -v
- npm i
- p=$(cat /home/mp-version/p.txt)
- v=$(cat /home/mp-version/v.txt)
- v1=$(cat ./version.txt)
- if [ "$v" == "$v1" ]; then
- p1=$(expr $p + 1)
- echo "patch version add $p1"
- else
- p1=0
- echo "patch version rest $p1"
- fi
- ud=$(echo $(git log -1 --format=%B) | cut -d ":" -f 2)
- by=$(git log -1 --format=%an)
- miniprogram-ci pack-npm --pp $(pwd) --pkp /home/private-key/private.key --appid wxxxxxxxxxxx
- miniprogram-ci upload --pp $(pwd) --pkp /home/private-key/private.key --appid wxxxxxxxxxxx --pi [node_modules/**/*] --ud "$ud by:$by" --use-project-config true --uv "$v1.$p1"
- echo $p1 > /home/mp-version/p.txt
- echo $v1 > /home/mp-version/v.txt
- echo "upload version: $v1.$p1 desc:$ud"