微信发布了独立的 miniprogram-ci 小程序编译模块,可以通过node脚本或者命令行直接操作代码上传及预览,而不再需要使用完整的微信开发者工具。
这篇文章讲述如何使用 Coding 的持续集成上传小程序代码,同时也兼容Jenkins或者基于Jenkins的持续集成系统。
首先到小程序后台,开发→开发设置→小程序代码上传获取密钥,由于 Coding 的构建节点出口IP一般不固定,因此需要关闭“IP白名单”。
获取到密钥后,到 Coding 的项目设置→开发者选项→凭据管理,凭据类型选择SSH私钥,然后填入刚刚下载的密钥(记事本打开)。
新增构建计划。由于我们仅需要实现代码上传,因此使用命令行模式。Jenkinsfile编写比较简单,直接贴出代码。
pipeline { agent any stages { stage('检出') { steps { checkout([ $class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]]) } } stage('安装依赖') { steps { sh 'npm install -g miniprogram-ci' } } stage('部署') { steps { withCredentials([sshUserPrivateKey(credentialsId: env.PRIVATE_KEY, keyFileVariable: 'PRIVATE_KEY_PATH')]) { sh '''miniprogram-ci upload --pp ./ --pkp ${PRIVATE_KEY_PATH} --appid ${APP_ID} --uv ${CI_BUILD_NUMBER} -r 1 --enable-es6 true --enable-es7 true --enable-minifyJS true --enable-minifyWXSS true --enable-autoPrefixWXSS true''' } } } } }-r 1后的参数可以根据项目实际情况填写,参数说明在包的 readme 中有,也可以参照下图。
另外,如果开启了minifyWXML,对于wxml的语法规则会比使用微信开发者工具上传时更加严格,例如wxml中<input />写成了<input></input>,在部署时会直接报错。
20002 ‘Error: {“errCode”:-1,”errMsg”:”inner upload fail with errcode: -80054, errmsg: ./pages/auth/login.wxml:15:3: expect end-tag input., near view“}’ (node:4362) UnhandledPromiseRejectionWarning: Error: Error: {“errCode”:-1,”errMsg”:”inner upload fail with errcode: -80054, errmsg: ./pages/auth/login.wxml:15:3: expect end-tag input., near view“} at Object.upload (/usr/lib/node_modules/miniprogram-ci/dist/upload/upload.js:1:3214) at process._tickCallback (internal/process/next_tick.js:68:7)
填写完Jenkinsfile后,添加一个环境变量APP_ID,值为小程序的appid,然后完成其它配置。
执行构建任务,提示done: upload且没有报错即完成,在后台“版本管理”将可以看到刚刚提交上来的代码。
---来自腾讯云社区的---TLingC
微信扫一扫打赏
支付宝扫一扫打赏