Zadig,作为一款全面的 DevOps 平台,致力于简化多样化软件交付环境中的发布流程。它集成了多种功能和工具,适配了广泛的操作系统和部署环境,使得团队可以轻松执行持续交付、自动化测试和灰度发布等关键 DevOps 实践,显著提高了软件开发的效率和质量。Zadig 已经成功支持了 Android 和 iOS 应用的自动化发布,不仅在 Kubernetes 构建基础设施上表现出色,也能在 Linux 、 MacOS 和 Windows 主机上完成应用的编译和发布,证明了其跨平台的兼容性和强大功能。
在本文中,我们将深入探讨如何通过 Zadig 实现小程序的自动化发布。Zadig 将自动化能力扩展到了小程序这一特殊应用类型,为无论是传统移动应用还是新兴小程序的开发团队提供了稳定而高效的 DevOps 支持。通过 Zadig,团队可以确保软件交付的每个环节都流畅无阻,实现快速且可靠的小程序发布。
# 前置工作
# 申请 APP ID
在微信公众平台申请 APP ID,一般由开发工程师提供。
# 制作构建镜像
为了使小程序的代码编译、上传和预览等操作更加顺畅,我们推荐使用微信官方提供的miniprogram-ci
工具。工具详细介绍参见微信官方文档 (opens new window)。
在构建过程中,为了能够使用miniprogram-ci
工具,需要准备一个包含该工具的镜像环境,具体过程如下:
- 制作镜像并推送镜像仓库。Dockerfile 及镜像构建命令参考如下:
根据实际项目依赖情况选择相应的 node 版本。
Dockerfile 参考:
FROM node:14.20.0-buster-slim
RUN apt update && \
apt install curl git -y && \
npm install -g miniprogram-ci --registry=https://registry.npmmirror.com
镜像构建并推送镜像仓库:
$ docker build -t koderover.tencentcloudcr.com/test/node:14.20.0-buster-slim .
$ docker push koderover.tencentcloudcr.com/test/node:14.20.0-buster-slim
- 在 Zadig 上配置和使用自定义镜像,具体配置参考 自定义镜像管理 | Zadig 文档 (opens new window)
# 管理员配置
# 新建项目
进入 Zadig 系统,选择 项目
-> 新建项目
,填写项目名称,可选择任一项目类型新建项目,并跳过向导。
# 准备工作流
管理员为不同角色准备好协作工作流,具体配置参考:
面向角色 | 功能描述 | 工作流名称样例 | 包含步骤 |
---|---|---|---|
研发/测试工程师 | 测试工作流,构建测试版本 | test-workflow | 构建测试版本(通用任务)-> IM 通知(代码变更触发) |
发布工程师 | 发布工作流,上传正式版本 | release-workflow | 构建并上传正式版本(通用任务)-> IM 通知 |
# 测试工作流配置
- 新建工作流添加「通用任务」,选择小程序的构建镜像、配置代码信息及构建脚本。
构建脚本参考:
#!/bin/bash
set -e
cd ${REPONAME_0}
yarn install
npx gulp -f build/compiler.js buildExample --color # 根据项目实际构建过程修改
miniprogram-ci preview \
--appid <小程序 APP ID> \
--project-path ./example \
--private-key-path ./example/private.key \
--upload-version $TASK_ID \
-r 1 --enable-qrcode true% \
--enable-es6 true%
- 添加通知配置,通知测试工程师进行小程序测试,具体配置参考 工作流通知 | Zadig 文档 (opens new window)。
- 添加 Git 触发器,具体配置参考 Git 触发器 | Zadig 文档 (opens new window)。
# 发布工作流配置
- 新建工作流添加「通用任务」,选择小程序的构建镜像、配置代码信息、抽取版本信息作为自定义变量、构建推送脚本。
构建脚本参考:
#!/bin/bash
set -e
cd ${REPONAME_0}
yarn install
npx gulp -f build/compiler.js buildExample --color # 根据项目实际构建过程修改
miniprogram-ci upload \
--appid <小程序 APP ID> \
--project-path ./example \
--private-key-path ./example/private.key \
--upload-version $version \
--enable-es6 true%
- 添加通知配置,通知发布工程师正式版本已上传。
# 工程师使用
# 开发工程师自测调试
小程序开发工程师一般使用本地开发工具即可完成自测调试。
# 测试工程师集成验证
研发工程提交代码后,自动触发 test-workflow 执行,执行完成后,测试工程师可以在 IM 上收到通知,通过扫描任务输出中的二维码,即可打开小程序进行测试。
# 发布工程师正式发布
测试通过后,由发布工程执行 release-workflow 进行正式版本的构建及推送。
成功推送后,前往微信公众平台,选择相应的版本进行提交审核。一旦审核通过,即可进行发布。