介绍
自动化已成为标准化,99%的公司或多或少地实施了某些自动化功能,例如应用程序包装和部署,服务器批处理维护,自动化测试等。
在实际工作中,我基本上已经完成了前端,后端和移动设备的自动化,但没有涉及迷你程序。主要原因是:
这导致了这样一个事实,即在开发迷你计划期间,在为生产或测试环境构建发布程序时,开发人员将由开发人员手动操作。释放不同的环境可能需要在不同分支之间切换,这不仅增加了重复的工作,而且大大增加了错误的可能性。
鉴于此,我们决定自动化迷你计划,减少开发的工作量并提高工作效率。
工具简介
自动发布迷你程序并不难。我们可以使用-CI工具来实现它。在修改工具之前,大多数大型家伙都会自己开发了各种自动化脚本,因此现在我们不必担心它了。
-CI是从微信开发工具中提取的迷你程序/迷你游戏项目代码的编译模块。开发人员可以使用某些开发人员工具,并且可以在不使用某些开发人员工具的情况下完成Mini Code的上传,预览和其他操作。它主要提供以下功能:
1。上传代码,对应于上传Mini 开发人员工具。
2。预览代码,对应于迷你程序开发人员工具的预览。
3。构建NPM,对应于Mini程序开发人员工具:菜单 - 工具 - 构建NPM。
4。上传云功能代码用于云开发,对应于迷你程序开发人员工具上传云功能的能力。
5。上传云托管代码,对应于迷你程序开发人员工具的上传云托管功能。
6。上传云存储/静态托管文件,对应于迷你程序开发人员工具 - 云开发 - 云存储和静态托管文件管理。
7.代理,配置-CI的网络请求代理方法。
8。支持以获取最近上传的版本。
9。支持节点脚本调用方法和命令行调用方法。
预工作
申请应用ID
App ID应用于微信后端,通常提供用于开发。
制作形象
要使用-ci,我们需要安装模块。安装命令如下:
npm install miniprogram-ci --save
为此,我们有一个带有-ci命令的镜子。
FROM node:14.20.0-buster-slimRUN apt update && \ apt install curl git -y && \ npm install -g miniprogram-ci --registry=https://registry.npmmirror.com
然后创建一个镜子,然后将其推到镜子存储库中。
PS:根据实际情况选择节点版本。
$ docker build -t registry.cn-hangzhou.aliyuncs.com/coolops/node:14.20.0-buster-slim .$ docker push registry.cn-hangzhou.aliyuncs.com/coolops/node:14.20.0-buster-slim
配置
先决条件
开始配置
1。添加构建图像
在系统配置 - >构建图像管理办公室中,添加上述构建图像,如下:
2。创建一个项目
在中,选择项目 - >创建一个新项目,并添加一个独有的项目,如下所示:
然后跳过向导,我们不需要环境,如下:
3。添加服务
添加服务的方法取决于您自己的情况。无论是YAML项目还是Helm项目,我们都不会使用这些方法将其部署在现实中。只是随意选择。例如,我在这里选择的Helm 。
配置Helm的原因是使服务组件正常显示。
4。添加一个构建脚本
首先,选择构建环境和代码信息,如下:
我们选择了自定义构建图像。
然后添加一个构建变量,该变量用于设置推动机器人编号,我定义如下:
我选择了枚举类型,并定义了三个机器人代码(可以从1到30中选择机器人),如下:
最后,我们编写一个构建脚本如下:
#!/bin/bashset -e
cd ${SERVICE}npm config set cache ${WORKSPACE}npm install --registry=https://registry.npmmirror.com && npm run build:weapp
APP_VERSION=$(grep -w 'version' dist/project.config.json | awk -F: '{print $2}' | grep -oP "[0-9].[0-9].[0-9]")APP_DESC=$(grep -w 'description' dist/project.config.json | awk -F: '{print $2}'| sed 's/"//g' | sed 's/,//g')WECHAT_APP_ID="xxxxx"
eval BRANCH=\${${REPO_0}_BRANCH}
echo "========================="echo "version: ${APP_VERSION}"echo "desc: ${APP_DESC}"echo "branch: ${BRANCH}"echo "robot: ${ROBOT_NUM}"echo "========================="
# 推送miniprogram-ci \ upload \ --pp ./dist \ --pkp ./secret/private.${WECHAT_APP_ID}.key \ --appid ${WECHAT_APP_ID} \ -r ${ROBOT_NUM} \ --enable-es6 true \ --ud 发布分支:"${BRANCH}"发布描述:"${APP_DESC}" \ --uv ${APP_VERSION}
注意:
然后保存构建和退出。
5。添加工作流程
现在,我们添加了应用程序发布的工作流程。我在这里选择了一个自定义工作流,如下所示:
新阶段如下:
然后添加一个新任务并选择构建,如下:
选择相应的服务组件如下:
固定参数(我们同意将机器人1用于测试环境和机器人6用于生产环境),如下:
配置默认分支并使用测试分支测试环境,如下:
最后,将触发器配置为实现开发以将代码推向相应的分支,并自动触发管道以进行发布,如下所示:
然后保存并退出以完成配置。
6。添加IM通知
IM通知可帮助团队朋友及时了解工作流程的结果状态,以免每次检查它,节省时间并提高效率。
选择工作流 - >配置 - >通知如下:
填写特定的IM信息并在配置后保存。
此时,执行工作流可以在组中接收工作流消息。
7。测试
配置完成后,您需要测试工作流是否正常。
首先执行手动测试。在工作流中选择相应的服务,并执行以下操作:
如果管道成功运行,则表示配置是正常的,如下所示:
再次测试,我们需要更改代码存储库中的代码并将其推开。
我在测试分支中添加了一个文件,并以这样的推动:
然后我发现管道是正常触发的,如下所示:
无论是手动触发还是触发,您都可以在组中接收任务状态,如下所示:
在这一点上,我们已经完成了迷你程序测试环境的自动化,其他应用程序和环境操作只是相似的。
终于
简单地意识到迷你程序的自动化并不难。只要它适用于企业自己的架构,就可以以任何方式使用它。我们之所以选择主要是因为它的简单操作,便捷的使用以及使用开发和测试人员的低成本。
我们已经将所有发布工作移至现在。
但是,在使用自定义工作流程配置的过程中,仍然需要一些优化:
总体使用没有大问题。朋友,在测试Mini计划的自动发布时,我和我之间可能会有一些差异,因此只需根据实际情况进行调整即可。
,开放,链接,专业。