QP 发布步骤
1、概览
所有的 QP 资源包的发布都包括这几个步骤:BETA 发布、灰度发布、线上发布。
BETA 发布:将静态资源打成 QP 资源包,并发布到 BETA 服务器上,此时就可以通过 BETA 进行测试了。
灰度发布:通过 uid 和灰度百分比来进行灰度发布。
全量发布:全量发布线上。
如果全量发布之后存在质量问题,可以进行下线和回滚。
下线:将资源包下线,设备不会再下载到该资源包。
回滚:
代码回滚:代码回滚至某次发布
线上回滚:JSBundle回滚至某次发布(目前仅支持QRN)
发布流程图如下
发布页概览如下,您可以着重注意红色区域部分提示。
操作区:快速导航可快速回到导航区域,新建发布可新建一条发布记录。
发布历史:该项目的发布记录结合。
状态栏:一条发布记录的基本状态,主要包括当前状态和即将进行状态。
信息切换:这里可以切换查看一条发布记录的发布参数和日志信息。发布参数的具体释义详见下文。
发布操作:该条发布记录的操作按钮。
FAQ:可能遇到的问题。
2、BETA 发布
BETA 发布: 将静态资源打成 QP 资源包,并发布到 BETA 服务器上。
发布类型选择BETA,填写相关参数,点击 发布 进行发布, 在进行灰度发布前,可反复进行 BETA 发布。
发布完成后,如何测试业务代码,请看文档 使用/测试 一节
a、HY 参数释义
版本信息:
类型:选择要发布的类型,有 iOS 和 Android,Hy 默认全选。
iOS 版本:用于限制可下载该资源的iOS客户端版本, 大于或等于指定vid的版本可以下载到该qp包。
Android 版本:用于限制可下载该资源的Android客户端版本, 大于或等于指定vid的版本可以下载到该qp包。
Android 组件:用于限制可下载该资源的Android客户端内的组件版本。
资源信息:
QP二次打包:选择否, 正常填写资源信息进行打包;选择是,则可填写一个完整的QP包地址,实现该QP包的上线工作。
资源信息分为两种:远程资源和本地资源(GIT方式,您可以任选您需要的方式进行资源填写。
(1). 远程资源
远程文件:远程文件是从一个链接可以直接下载到的文件,您可填写配置信息批量添加,也可直接填写链接地址,示例如下(填写远程文件后, 您会看到远程资源忽略 和远程域名替换)。
// 1: 直接填写资源
http://simg1.qunarzz.com/hotel/bnb-touch/bao.png
/**
* 如果远程文件是一个页面,页面链接地址前可以加上 『+』 或 『-』
* 『+』: 含义为递归查找页面内引用到的 js/css(包括当前url)
* 『-』: 含义为递归查找页面内引用到的 js/css(不包括当前url)
* /
+http://bnb.qunar.com/touch/bnbtouch.jsp
-http://bnb.qunar.com/touch/bnbtouch.jsp
// 2: 填写配置信息
-https://common.qunarzz.com/static/prd/qpconfig/public.conf
/**
* public.conf中的内容为
* https://common.qunarzz.com/lib/prd/babel-polyfill/6.26.0/polyfill.min.js
* https://common.qunarzz.com/lib/prd/axios/0.18.0/axios.min.js
* /
远程资源忽略:抓取远程文件资源时,忽略的资源。格式和远程文件相同。
远程域名替换:远程资源的域名替换。打包程序去下载远程文件时,会将远程文件链接中的域名替换成指定的 ip:port,示例如下
// 远程域名替换
www.baidu.com 192.168.10.10:8080
(2) 本地资源
Git工程地址:要打入该QP的git工程地址。填写后可看到下面展开的 tagName 和 资源对应关系 的输入框。
Tag Name:git地址的分支。
资源关系对应:填写对应的资源标识,示例如下。
// 资源关系对应
-
- http://www.qunar.com/test/a.jpg // 资源标识
- ./test/a.jpg // 相对于文件目录的路径
b、QRN 参数释义
版本信息:
类型:选择要发布的类型,有 iOS 和 Android可选。
iOS 版本:用于限制可下载该资源的iOS客户端版本,大于或等于指定vid的版本可以下载到该qp包。
Android 版本:用于限制可下载该资源的Android客户端版本,大于或等于指定vid的版本可以下载到该qp包。
Android 组件:可以限制可下载该资源的android客户端内的组件版本。
资源信息:
Git工程地址:业务代码的git工程地址。
Tag Name:业务代码对应的分支。
c、YIS 参数释义
版本信息:
类型:选择要发布的类型,有 iOS 和 Android, YIS默认全部发布。
iOS 版本:用于限制可下载该资源的iOS客户端版本,大于或等于指定vid的版本可以下载到该qp包。
Android 版本:用于限制可下载该资源的Android客户端版本,大于或等于指定vid的版本可以下载到该qp包。
Android 组件:可以限制可下载该资源的android客户端内的组件版本。
资源信息:
Git工程地址:业务代码的git工程地址。
Tag Name:业务代码对应的分支。
3、灰度发布
灰度发布:通过 uid 和灰度百分比来进行灰度发布。
发布类型选择 灰度 , 填写相关参数,点击 发布 进行发布。
灰度发布成功后,可以从灰度设备中查看资源更新后的效果(详情请看使用/测试一节), 您可以重复进行灰度发布,以追加测试的灰度设备。
参数释义
灰度百分比:进行灰度更新的百分比。
灰度uid:会进行灰度更新的设备uid。
强制更新:是否开启强制更新。
4、全量发布
全量发布:全量发布线上。
发布类型选择 全量 , 点击 发布 进行发布。
全量发布完成后,您仍可通过下面的设置强制更新的按钮,进行强制更新的设置或取消
参数释义
强制更新:是否开启强制更新
5、强制更新
强制更新: 当某个 QP 包需要被用户快速下载到时,可以使用强制更新功能。
具体解释详情查看
当某个qp包需要被强制更新时,发布全量时打开强制更新按钮即可。
如果某个包已结束全量发布,但由于某些原因希望开启或关闭强制更新功能,仍可通过点击全量面板下的 设置强制更新 或 取消强制更新 的按钮进行设置。
设置强制更新成功的包,左侧的发布历史中会出现强更的字样,如上图所示。
6、下线
下线:如果在灰度发布或全量发布后发现了资源包存在问题,可以点击下线按钮将资源包下线,设备将不会再下载到该资源包。
在QRN和YIS中,点击下线,该工程自动加锁,需master或者owner进行解锁,才可以继续进行操作(若进行代码回滚操作,则自动解锁)
7、回滚
下线后,QRN提供回滚功能。
代码回滚:将代码回滚到某次发布
线上回滚:将线上JSBundle回滚至某次发布, 回滚成功后会有当前线上jsbundle文件的确认提示。