如何使用 Zadig 实现微信小程序自动发布

详解迁移至 Zadig 的操作步骤,轻松解决 Jenkins 的维护难题

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工具,需要准备一个包含该工具的镜像环境,具体过程如下:

  1. 制作镜像并推送镜像仓库。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
  1. 在 Zadig 上配置和使用自定义镜像,具体配置参考 自定义镜像管理 | Zadig 文档 (opens new window)

Zadig 上配置自定义镜像

# 管理员配置

# 新建项目

进入 Zadig 系统,选择 项目 -> 新建项目,填写项目名称,可选择任一项目类型新建项目,并跳过向导。

# 准备工作流

管理员为不同角色准备好协作工作流,具体配置参考:

面向角色 功能描述 工作流名称样例 包含步骤
研发/测试工程师 测试工作流,构建测试版本 test-workflow 构建测试版本(通用任务)-> IM 通知(代码变更触发)
发布工程师 发布工作流,上传正式版本 release-workflow 构建并上传正式版本(通用任务)-> IM 通知

# 测试工作流配置

  1. 新建工作流添加「通用任务」,选择小程序的构建镜像、配置代码信息及构建脚本。

选择构建镜像

配置构建预览脚本

构建脚本参考:

#!/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%
  1. 添加通知配置,通知测试工程师进行小程序测试,具体配置参考 工作流通知 | Zadig 文档 (opens new window)

添加通知

  1. 添加 Git 触发器,具体配置参考 Git 触发器 | Zadig 文档 (opens new window)

配置 Git 触发器

# 发布工作流配置

  1. 新建工作流添加「通用任务」,选择小程序的构建镜像、配置代码信息、抽取版本信息作为自定义变量、构建推送脚本。

选择构建镜像

配置构建及推送脚本

构建脚本参考:

#!/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%
  1. 添加通知配置,通知发布工程师正式版本已上传。

添加通知

# 工程师使用

# 开发工程师自测调试

小程序开发工程师一般使用本地开发工具即可完成自测调试。

本地开发工具

# 测试工程师集成验证

研发工程提交代码后,自动触发 test-workflow 执行,执行完成后,测试工程师可以在 IM 上收到通知,通过扫描任务输出中的二维码,即可打开小程序进行测试。

工作流任务详情

工作流任务通知

# 发布工程师正式发布

测试通过后,由发布工程执行 release-workflow 进行正式版本的构建及推送。

执行 release-workflow

release-workflow 任务详情

成功推送后,前往微信公众平台,选择相应的版本进行提交审核。一旦审核通过,即可进行发布。

小程序提交审核

Background Image

作为一名软件工程师,我们一直给各行各业写软件提升效率,但是软件工程本身却是非常低效,为什么市面上没有一个工具可以让研发团队不这么累,还能更好、更快地满足大客户的交付需求?我们是否能够打造一个面向开发者的交付平台呢?我们开源打造 Zadig 正是去满足这个愿望。

—— Zadig 创始人 Landy