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:业务代码对应的分支。

BETA

3、灰度发布

灰度发布:通过 uid 和灰度百分比来进行灰度发布。

发布类型选择 灰度 , 填写相关参数,点击 发布 进行发布。

灰度发布成功后,可以从灰度设备中查看资源更新后的效果(详情请看使用/测试一节), 您可以重复进行灰度发布,以追加测试的灰度设备。

参数释义

  • 灰度百分比:进行灰度更新的百分比。
  • 灰度uid:会进行灰度更新的设备uid。
  • 强制更新:是否开启强制更新。

灰度

4、全量发布

全量发布:全量发布线上。

发布类型选择 全量 , 点击 发布 进行发布。

全量发布完成后,您仍可通过下面的设置强制更新的按钮,进行强制更新的设置或取消

参数释义

  • 强制更新:是否开启强制更新

线上

5、强制更新

强制更新: 当某个 QP 包需要被用户快速下载到时,可以使用强制更新功能。 具体解释详情查看

当某个qp包需要被强制更新时,发布全量时打开强制更新按钮即可。

强制更新

如果某个包已结束全量发布,但由于某些原因希望开启或关闭强制更新功能,仍可通过点击全量面板下的 设置强制更新取消强制更新 的按钮进行设置。

强制更新

强制更新

设置强制更新成功的包,左侧的发布历史中会出现强更的字样,如上图所示。

6、下线

下线:如果在灰度发布全量发布后发现了资源包存在问题,可以点击下线按钮将资源包下线,设备将不会再下载到该资源包。

下线

在QRN和YIS中,点击下线,该工程自动加锁,需master或者owner进行解锁,才可以继续进行操作(若进行代码回滚操作,则自动解锁)

解锁

7、回滚

下线后,QRN提供回滚功能。

代码回滚:将代码回滚到某次发布 代码回滚

线上回滚:将线上JSBundle回滚至某次发布, 回滚成功后会有当前线上jsbundle文件的确认提示。

线上回滚 线上回滚