Skip to content

发布 SOP

Blucas edited this page Feb 23, 2024 · 4 revisions

背景

本指南旨在规范和指导测试发布过程,以确保 PageSpy 在发布版本时达到预期的质量标准。测试发布是项目开发周期中的一个重要阶段,用于验证新功能、修复错误和进行性能优化。测试发布的目标是验证新功能的可靠性、检测并修复现有错误,以及收集用户反馈,为下一阶段的正式发布做准备。

范围

测试发布涵盖项目的所有关键功能和模块,并且重点测试新功能、改进和修复的部分。在进行测试发布之前,确保测试环境已经设置好,并且测试数据和工具已经准备就绪。

版本历史

之前的版本发布历史请参考 Release 或版本控制仓库。

操作步骤

除非特殊说明,否则下文中提到的命令都在根目录下运行。

  1. 确定发布版本号

根据当前仓库中的版本确定下一个发布的版本号,通常遵循语义化版本控制规范(SemVer)。

  1. 拉取最新代码

从主开发分支(通常是 main)拉取最新的代码到本地开发环境,并切到新分支,通常新分支名称需要遵循命名规范。

  1. 本地调整

开发阶段本地调整后构建项目,确保生成的内容符合预期。

# 一次性构建全部子包
lerna run build

# 构建指定子包
lerna run build --scope=@huolala-tech/page-spy-xxx

# 构建指定子包、并监听内容改动
lerna run build:watch --scope=@huolala-tech/page-spy-xxx
  1. 运行单元测试

执行单元测试套件,确保代码的基本功能和逻辑没有被破坏。

yarn test 
  1. 手动测试

对于无法自动化测试的部分,进行手动测试,例如本次改动调整了用户界面和外观等。

  1. 运行端到端测试

如果有端到端测试,运行这些测试以模拟用户在真实环境中的操作,验证整个系统的功能性和稳定性。

  1. 修复问题

如果发现了问题或 bug,修复并确保问题被解决。在修复问题后,重复步骤 3 到 6,直到没有发现新的问题。

  1. 更新说明

确保所有必要的文档和注释已经更新,以反映最新的更改和功能。

  1. 二次确认

执行发布前二次确认本次的改动内容和待发布版本号。

  1. 标记新版本
# 标记新的语义化版本(也可以不带语义 tag 执行,根据 prompt 选择版本)
lerna version <major | minor | patch | prerelease>
  1. 发布新版本
# 发布为 latest
lerna publish from-git

# 发布为 beta 版本,通常配合 lerna version prerelease --preid beta 使用
lerna publish from-git --dist-tag beta
  1. 更新依赖

调试端如果依赖了此次更新的子包,则前往调试端 page-spy-web 仓库更新子包到最新版本,同时调试端标记新版本并发布;如果调试端不依赖此次更新的子包 ,比如原生小程序的 SDK 更新,则无需更新调试端。

  1. 结果验证

调试端标记新版本并提交后,等待仓库的 Action workflow 构建完成。之后拉取新版本的服务,确认此次更新内容符合预期。

# 更新 docker 服务
docker stop pageSpy && docker rm -f pageSpy && docker pull ghcr.io/huolalatech/page-spy-web:latest && docker run -dp 6752:6752 --name="pageSpy" ghcr.io/huolalatech/page-spy-web:latest

# 更新 nodejs 服务
yarn global upgrade @huolala-tech/page-spy-api@latest && page-spy-api

# 浏览器打开 http://localhost:6752 访问新版本服务
  1. 版本说明

前往 Release 页面填写新版本的内容改动说明。

  1. 通知用户

通过 v2ex / 掘金 / 微信群等社交媒体或其他途径通知用户新版本的发布,提供新版本链接和相关的发布说明。

  1. 监控反馈、持续改进

监控用户反馈和报告的问题,及时响应并处理可能出现的问题,根据用户需求和项目进展不断改进和迭代。

总结

在执行本 SOP 的过程中,请确保所有步骤都得到了完整的执行,并仔细遵循每个步骤中提供的指导。如果有任何疑问或需要进一步的解释,请随时联系 @Blucas 以获取支持。我们会定期 review 、修正内容、增加新的主题,进行版本迭代。希望以上内容能够帮助到大家!

Clone this wiki locally