使用Coding持续集成部署微信小程序

微信发布了独立的 miniprogram-ci 小程序编译模块,可以通过node脚本或者命令行直接操作代码上传及预览,而不再需要使用完整的微信开发者工具。

这篇文章讲述如何使用 Coding 的持续集成上传小程序代码,同时也兼容Jenkins或者基于Jenkins的持续集成系统。


首先到小程序后台,开发开发设置小程序代码上传获取密钥,由于 Coding 的构建节点出口IP一般不固定,因此需要关闭“IP白名单”。

获取到密钥后,到 Coding 的项目设置开发者选项凭据管理凭据类型选择SSH私钥,然后填入刚刚下载的密钥(记事本打开)。
使用Coding持续集成部署微信小程序_第1张图片

新增构建计划。由于我们仅需要实现代码上传,因此使用命令行模式。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 中有,也可以参照下图。
使用Coding持续集成部署微信小程序_第2张图片
另外,如果开启了minifyWXML,对于wxml的语法规则会比使用微信开发者工具上传时更加严格,例如wxml中写成了,在部署时会直接报错。

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且没有报错即完成,在后台“版本管理”将可以看到刚刚提交上来的代码。
使用Coding持续集成部署微信小程序_第3张图片

原文链接:https://tlingc.com/2020/05/using-jenkins-ci-to-deploy-wechat-miniapp/

你可能感兴趣的:(使用Coding持续集成部署微信小程序)