公司大多已实现部分自动化,但小程序未涉及,将借助miniprogram-ci工具实现其自动发布

2025-04-04
来源:网络整理

介绍

自动化已成为标准化,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计划的自动发布时,我和我之间可能会有一些差异,因此只需根据实际情况进行调整即可。

,开放,链接,专业。

分享