1. 背景
在过去,我们的业务主要是做跨平台小程序,但是只有内部管理系统接入了相关CI操作,在鄙人接手一个小程序项目时,也逐渐发现了之前存在的一些痛点,各业务的开发人员在使用Hbuilder通过手动操作编译不同平台的产物后,利用小程序开发者工具打开对应构建产物,进行小程序二维码预览或小程序上传至后台操作时,且有可能需要针对不同小程序主体来进行对应修改参数来进行上述操作。很明显这些重复且简单浪费时间的操作很影响整体的研发效率,且有一定的风险来造成线上事故。因此有了以下奇思妙想~
2. 想法落地过程
2.1 本地操作
该项目是使用Hbuilder编辑器创建的小程序
利用本地Hbuilder Cli来做一些自动化构建工作
飞书作为我们企业内部的IM工具
飞书消息推送
该过程都是在本地执行相关指令来完成的操作
2.2 CI操作
这里提到的CI工具可以是jenkins、gitlab ci等等
利用drone ci方式利用window server中的Hbuilder Cli配合miniprogram-ci实现小程序预览或发布
这里的提到的miniprogram-ci是上篇文章中有提到过的一个契合内部业务集成微信、支付宝等小程序的ci能力的npm包
相关逻辑同上,只是将一些操作放在了CI上
2.3 改造CI逻辑,兼容各业务小程序
具体相关逻辑和服务端大佬一起考虑兼容性的问题
痛点在于需要对Hbuilder Cli在执行脚本时做一些容错处理,它老崩溃
这里的产物既可以配合CI实现研发全流程,也可以配合上篇文章中提到的小程序自动构建平台来配合使用
3. 总结
后续项目真的打算推团队使用uni-cli来起项目咯,兼容历史遗留问题实在是太痛苦啦
最近也在搭建新的模版项目,基于github.com/ttk-cli/uni… 进行二次开发使用,感兴趣的朋友可以看一下
又水一篇文章啦哈哈哈哈哈哈哈!主要是想对自己阶段性做的事情做个简单总结吧
4. 友情链接
- drone
- 微信小程序CI工具
- 支付宝小程序CI工具
- 阿里云OSS Node接入
- Hbuilder Cli 编译uniapp至不同小程序
- 自建应用获取 tenant_access_token - 服务端 API - 开发文档 - 飞书开放平台
- 上传图片 - 服务端 API - 开发文档 - 飞书开放平台
- 自定义机器人使用指南 - 开发指南 - 开发文档 - 飞书开放平台
网上关于利用Hbuilder Cli去做自动化的文章是真的少得可怜,鄙人也是翻烂了才去试着跑通的,欢迎有相关痛点的朋友们来交流!