全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件
云效

特性分支应用级集成视图

更新时间:2018-02-12 20:55:02

如果您的企业在使用分支模式下自定义流水线功能(目前仅对部分企业开通该功能),当使用向导新建一站式研发解决方案时,若研发模式选择了分支模式(而不是自由模式或Git Flow模式),则向导将自动创建带有特性分支集成视图的流水线。

阅读本文之前,需要首先学习理解开发模式中的分支模式。详细介绍见这里

如果您的企业在使用云效专有云版,且开启了全局集成功能,请前往这里阅读相应使用说明。

概述

分支模式下的应用的流水线,通常会带有一个“分支管理器”,也就是这里说的应用级特性分支集成视图。分支管理器负责把该应用上用户指定的各特性分支合并到一条发布分支,然后把发布分支上最新的源代码版本,交给流水线作为输入。流水线据此运行。

典型的,一个应用有“日常”、“预发”、“正式”三条流水线,对应日常环境的部署和测试、预发环境的部署和测试、正式发布。每条流水线有其自己的分支管理器。“日常”流水线成功运行完毕,用户可以在分支管理器中把相应的特性分支一起带到“预发”流水线,进而“正式”流水线,已发布到线上。

待集成区与集成区

每个分支管理器,有待集成区(下图红框)和集成区(下图黄框)两个区域:

待集成区与集成区

两个区域,都是特性分支的列表。

待集成区里,是所有已经开发完毕并做了适当检测,可以进行集成和发布的特性分支列表。做集成和发布时,就从这个列表中挑选,哪些合并到当前流程对应的发布分支,以便部署和进一步集成测试。

集成区里,就是是从待集成区中挑出来的,(打算)合并到发布分支,并随后部署到当前流程相应的运行环境的特性分支列表。这个列表,反映的是当前环境中,包含了哪些代码改动。这些改动将被放在一起测试,进而发布上线。

用户仅需在页面上维护这两个特性分支列表,系统将自动完成发布分支的创建和管理,特性分支到release分支的合并等一系列工作。

当前流程对应的发布分支,显示在集成区中。

日常操作

把特性分支标记为可供集成

在本项目的特性分支列表页(从本项目的左侧菜单中,“特性分支”菜单项进入),或者我的特性分支列表页(点击吊顶“我的”,再点击左侧菜单中“特性分支”菜单项进入),每个特性分支左侧,有“提交待发布”按钮。点击可将该分支状态置为“待发布”,也就是说,标记该特性分支已开发完毕并做了适当检测,可以进行集成和发布了。于是,该特性分支就进入了该应用的各流水线上的分支管理器中的待集成区。

挑选特性分支合入发布分支

在待集成区(图中文案“待发布的变更”)勾选打算合并到发布分支的特性分支。然后点击“提交发布”按钮,即把这些特性分支加入到集成区,并开始自动合并工作。合并完成后,自动继续进行构建和部署等。

如果当时集成区里还没有发布分支,那么此时还没有一条发布分支和当前流水线相关联,于是系统会基于master分支创建一条新的发布分支,然后开始合并工作。

如果当时集成区里已有特性分支,那么此时已有一条发布分支和当前流水线相关联,于是系统就会继续使用这条发布分支,开始合并工作。

在合并过程中,除了合入本次新勾选的特性分支,还将逐个检查已在集成区中,也就是曾经合并到发布分支的特性分支,看是否又有更新还不在发布分支上。如果有,将合入发布分支。类似的,master分支也将被检查。以确保,合并完成后,该发布分支上,包含了新合入的各特性分支,曾合入的各特性分支,以及master分支上的最新内容。

如果合并过程中出现了需要人工解决的合并冲突,页面将提示如何人工解决冲突并继续流程。

特性分支和/或master分支有更新后,更新发布分支并部署

若某(几)条特性分支在合入发布分支后,其内容又有了更新(即,又有人向该分支做了git push操作),或者master分支上因为发布上线而有了更新,那么可以点击“重新部署”按钮一键完成:

  • 相应更新发布分支,让它包含master分支和各特性分支最新的内容。
  • 把发布分支的最新内容,部署到运行环境。

把某个特性分支的内容,从集成中摘除

在集成区该特性分支条目中,点击右侧的“退出”钮,即可实现该目的。

系统将:

  • 基于master分支,自动创建一条新的发布分支,并关联到当前流水线。
  • 把去除了该特性分支后,集成区中的所有特慈宁宫分支再次合并到这条新的发布分支。
  • 把发布分支的最新内容,部署到运行环境。

因此在效果上,就把该发布分支从集成中摘除了。

把当前集成的全部内容都摘除

点击集成区上方的“退出”钮。于是,集成区被清空。同时,当前流程,不再对应任何一条发布分支。

把集成内容带入另一条流水线

比如,当在日常测试环境的测试结束后,把集成内容带入预发环境进行测试。

每个流水线运行完毕,不会自动触发另一条流水线的运行。如果想把当前流水线的内容带到另一个流流水线,也就是把当前集成区中的所有特性分支带入另一个流水线的集成区,请点击页面上的“进入……”按钮(如果有)。比如“进入预发部署”。

点击“进入……”(如果有)后,系统完成如下操作:

  • 将基于master创建一条新的发布分支,并关联到当前进入到的流水线。
  • 把前一个流水线对应的发布分支合并到当前流水线对应的这条发布分支。
  • 把集成区中所有特性分支合并到这条发布分支。这是为了保证特性分支上的任何更新也都反映到新的发布分支上。

以上,都是针对进入到的流水线(比如“预发”)。原流水线(比如“日常”),没有任何变化:集成区的特性分支列表、对应的发布分支及其上的内容,都不会发生变化。

正式发布后合并回master

这个工作不是在分支管理器中完成的,而是在流水线上完成的。正式发布流水线中,有一个任务是“合并主干”。运行至此时,将把发布分支合并到master分支,以使得master分支总是代表最新发布版本。

本文导读目录