问题缘由
在微信小程序开发中,先要在本地使用微信开发者工具进行调试,如果需要在线测试,则需要将编译好的代码上传。
目前,只能通过微信开发者工具手动点击上传,而该过程无法与持续集成/持续部署结合在一起,本文就是为了解决能够实现自动化和持续部署的难题
实现原理
微信 miniprogram-ci 库,提供了命令行调用方式,其中就包括上传的命令,我们可以通过脚本实现自动化集成
步骤
安装并配置 GitLab Runner
这部分文档在 Install GitLab Runner on macOS
安装
首先需要在本机上安装 GitLab Runner, 由于微信开发者工具只提供了 mac 和 windows 版本,所以目前只能在这两种系统上实现持续集成,本文讲述在 mac 的具体实现, windows 上的实现与此类似,只是相关命令和路径需要做些变更
注册 GitLab Runner
1 | gitlab-runner register |
编写 .gitlab-ci.yml
在此之前,你需要对GitLab-CI有一定的掌握,这部分资料参考下方的相关文档
1 | image: node:alpine |
注意,在设置-CI/CD-变量中,需要添加两个变量:
APP_ID 小程序 appid
UPLOAD_PRIVATE_KEY 小程序代码上传密钥, 需要在小程序后台获取
由于配置的密钥,在运行时过去到是单行文本形式,需要转换为多行原始格式,并输出到文件,以便上传使用
于是使用一下命令`- LF=$’\\x0A’
- echo $UPLOAD_PRIVATE_KEY | sed -e "s/-----BEGIN RSA PRIVATE KEY-----/&${LF}/" -e "s/-----END RSA PRIVATE KEY-----/${LF}&${LF}/" | sed -e "s/[^[:blank:]]\{64\}/&${LF}/g" > private.key
`