前言
最近很长一段时间都在和前端项目构建“纠缠”在一起,处理了web项目、app项目紧接着便是微信小程序,之所以把微信单独拎出来做一篇分享,主要是因为小程序的工程化在很多细节上是区别于传统意义上的web项目,请往下看
准备工作
- 配置一台打包机,建议弄一台mini(具体配置根据大家的实际情况来定,ps一下我们公司用的16G+128的,目前来说资源已经明显不够用了)其次要去搭建一个jenkins服务,做任务的集中管理。
- 搭建一个服务,主要提供和微信的对接为后期代码上传,提审等功能做基础,关于微信的对接方式大家可以看官网文档第三方平台
- 如果有可能的话对接一下各自公司的办公管理工具比如企业微信、钉钉等用来做消息的通知、审核等。
- 最后一点就是微信常用的开发套件了,就不做过多阐述。
创建和执行工作流
- 首先在Jenkins中创建任务,建议同时创建两个,一个作为开发预览(DevelopTask),另外一个作为代码上传(ReleaseTask)。Jenkins任务中的配置注意下面这几点。
- 处理微信开发者工具登录过期,我们可以通过开发辅助中提供的命令行登录方式来获取到授权二维码,提供给管理者去处理。
- DevelopTask要定时执行,因为小程序预览二维码会有过期的问题,所以我这里每20分钟会重新生成一张,我们可以在Jenkins的构建触发器中设置
- DevelopTask的脚本配置主要是上传预览、生成二维码资源(Base64)、通知开发者获取新的二维码。
- ReleaseTask中区别与DevelopTask的是不需要定时执行,另外我们需要将脚本中的
cli -p /Users/username/demo --preview-qr-output base64@/Users/username/code.txt
命令替换成cli -u 1.0.0@/Users/username/demo --upload-desc 'initial release' --upload-info-output /Users/username/info.json
- 开发预览,上面说到DevelopTask会生成预览二维码的base64文件,如何将这个信息通知给测试或者开发者呢?这里我以企业微信的方式为例,首先看下效果
通过企业微信中的接受消息功能我们可以将消息做一次中转,另外通过消息推送将新的消息推送给指定的用户,我们可以在中转服务中将二维码信息推送给用户,这里有一张企业微信消息推送的流程,大家可以借鉴一下,另外企业微信支持配置菜单类似于微信公众号中的菜单。
- 版本发布,ReleaseTask执行外之后我们会将代码推送到小程序的草稿库中,这里距离真正的提审还有三步骤,第一添加草稿到代码模版库,第二通过模版ID上传小程序代码,第三提交审核。这里的三个步骤由于微信限制,我们没办法在Jenkins中去操作,我们可以搭建中转服务去管理。
总结
整体流程
- 创建Jenkins任务,处理预览或者上传问题
- 测试:生成预览二维码
- 模版发布:上传草稿
- 利用微信三方服务接口实现模版提交,提审等功能
如有不足,还望指出。愿大家在前端的道路上少走弯路