小程序自动化部署

以下我们是用了Jenkinsfile结合微信小程序CI创建的自动化构建微信小程序
如果是QQ小程序,可以参考此篇文章 使用Jenkins持续集成部署QQ小程序

1.打开微信公众平台-小程序-开发-开发管理-开发设置-小程序代码上传,获取上传密钥,并配置上传白名单

2.在框架根目录新建一个build文件夹,将下载的密钥“private.wx.key”放到build文件夹下

3.按照小程序项目代码的编译模块miniprogram-ci

npm install miniprogram-ci --save

4.新建一个preview.wx.js,代码如下:

//预览
const rawArgv = process.argv.slice(2)
let robot = 1,
  qrcode = 'dev'
rawArgv.forEach(value => {
  if (value.indexOf('--robot=') >= 0) {
    robot = value.slice(8)
  } else if (value.indexOf('--qrcode=') >= 0) {
    qrcode = value.slice(9)
  }
})
console.log('robot', robot)

const ci = require('miniprogram-ci')
let {
  version: version,
  description: desc
} = require('../package.json')

if (!version) version = 'v1.0.0'
if (!desc) desc = new Date() + '上传'

console.log('version', version)
console.log('desc', desc)
console.log('process.cwd()', process.cwd())

const project = new ci.Project({
  appid: 'wx712144a6c08c0d59',
  type: 'miniProgram',
  projectPath: process.cwd() + '/dist',
  privateKeyPath: process.cwd() + '/build/private.wx.key',
  ignores: ['node_modules/**/*'],
})
ci.preview({
  project,
  desc,
  setting: {
    // es6: true,
    minify: true,
  },
  robot,
  qrcodeFormat: 'image',
  qrcodeOutputDest: process.cwd() + `/build/qrcode/${qrcode}.jpg`,
  onProgressUpdate: console.log,
  // pagePath: 'pages/index/index', // 预览页面
  // searchQuery: 'a=1&b=2',  // 预览参数 [注意!]这里的`&`字符在命令行中应写成转义字符`\&`
  // scene: 1001
}).then(res => {
  console.log(res)
  console.log(`${qrcode}环境编译成功,可通过小程序助手'ci机器人${robot}提交'的版本进入预览`)
}).catch(error => {
  if (error.errCode == -1) {
    console.log(`${qrcode}环境编译成功,可通过小程序助手'ci机器人${robot}提交'的版本进入预览`)
  }
  console.log(error)
  console.log(qrcode + '环境编译失败')
  process.exit(-1)
})

5.新建一个upload.wx.js,代码如下:

//上传
const ci = require('miniprogram-ci')
let {
  version: version,
  description: desc
} = require('../package.json')

if (!version) version = '1.0.0'
if (!desc) desc = new Date() + '上传'

const project = new ci.Project({
  appid: 'wx712144a6c08c0d59',
  type: 'miniProgram',
  projectPath: process.cwd() + '/dist',
  privateKeyPath: process.cwd() + '/build/private.wx.key',
  ignores: ['node_modules/**/*'],
})
ci.upload({
  project,
  version,
  desc,
  setting: {
    es6: true,
    minify: true,
  },
  onProgressUpdate: console.log,
  robot: 30
}).then(res => {
  console.log(res)
  console.log('上传成功,请前往微信公众平台-小程序-开发版本,查看“ci机器人30”提交的版本进行提交审核')
}).catch(error => {
  if (error.errCode == -1) {
    console.log('上传成功,请前往微信公众平台-小程序-开发版本,查看“ci机器人30”提交的版本进行提交审核')
  }
  console.log(error)
  console.log('上传失败')
  process.exit(-1)
})

6.在package.json的scripts字段里加几条对应各个环境的条命令

"scripts": {
    "preview": "npm run build:dev && node build/preview.wx.js --robot=1 --qrcode=dev",
    "preview:sandbox": "npm run build:sandbox && node build/preview.wx.js --robot=2 --qrcode=sandbox",
    "preview:prod": "npm run build:prod && node build/preview.wx.js --robot=3 --qrcode=prod",
    "upload": "cross-env NODE_ENV=production RUN_ENV=pro wepy build --no-cache && node build/upload.wx.js"
  }

然后就交给运维,合并分支时促发对应的环境命令了,最后发版时调用“upload”的命令就可以在小程序审核那里看到了

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值