
# 通过微服务变更流水线修复项目BUG并快速发布
#### 方案概述
CodeArts Pipeline为企业提供了一种微服务模型，将企业大军团的作战方式转变为小团队精英作战方式，支持每个微服务独立进行开发、验证、部署及上线发布，缩短需求发布周期。同时支持企业按照业务功能组织团队，优化管理模型，使运作更精细化，有效提升团队运作效率。
在微服务中，用户可以创建流水线资源，并将其设置为变更流水线，用于与微服务下变更资源进行联动，通过变更流水线发布一个或多个变更来实现项目的快速交付。
#### 约束与限制
微服务变更流水线仅支持基于变更触发运行，且单个微服务下只能存在一条微服务变更流水线。
#### 操作流程
本文介绍如何通过微服务变更流水线模拟修复项目下的一个BUG并快速发布，基本操作流程如下：
表1操作流程说明 
| **流程**                                                     | **说明**                       |
|:---|:---|
| [新建流水线微服务] | 在项目下新建一个微服务，用于管理某个特定的业务功能。   |
| [新建微服务变更]   | 在微服务下新建一个变更，承载项目下修复BUG的开发活动。 |
| [新建变更流水线]    | 在微服务下新建一条变更流水线，用于发布微服务下的变更。  |
| [执行变更流水线]   | 执行流水线，发布变更代码。                |
   
 #### 准备工作
- 已[开通并授权使用CodeArts Pipeline](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0033.html)。
- [新建项目](https://support.huaweicloud.com/qs-projectman/projectman_06_1000.html)（选择"Scrum"模板，命名为"Project_Test"），并在项目下[新建工作项](https://support.huaweicloud.com/usermanual-projectman/devcloud_hlp_00023.html)（以修复一个BUG单为例，命名为"BUGFIX"）。
- [新建代码仓库](https://support.huaweicloud.com/usermanual-codeartsrepo/codeartsrepo_03_0077.html)（选择"Java Maven Demo"模板，命名为"Repo_Test"）。
- [新建CodeArts Repo HTTPS服务扩展点](https://support.huaweicloud.com/usermanual-devcloud/devcloud_01_0019.html)（命名为"HttpsEndpoint01"）。
 
 #### 步骤1：新建流水线微服务
1. [登录华为云控制台页面](https://console.huaweicloud.com/console)。
2. 单击页面左上角![](https://support.huaweicloud.com/bestpractice-pipeline/zh-cn_image_0000001984394265.png)，在服务列表中选择"开发与运维 \> 流水线 CodeArts Pipeline"。
3. 单击"立即使用"，进入流水线服务首页。
4. 单击顶部导航栏"首页"，在首页搜索[准备工作]中已创建的项目，单击项目名称，进入项目。
5. 在左侧导航栏选择"持续交付 \> 流水线"，进入项目下流水线列表页面。
6. 切换到"微服务"页签，进入微服务列表页面。
7. 单击"新建微服务"，进入"新建微服务"页面，配置以下信息。 
   表2新建微服务 
   | 参数项   | 说明                                                                         |
   |:---|:---|
   | 所属项目  | 微服务所在的项目，不可更改。                                                             |
   | 微服务名称 | 微服务的名称，输入"Microservice01"。                                                 |
   | 流水线源  | 微服务关联的源码仓库，选择"Repo"。                                                       |
   | 代码仓   | 选择[准备工作]中已创建的代码仓"Repo_Test"。 |
   | 默认分支  | 默认使用的分支，选择"master"。                                                        |
   | 语言    | 指定微服务开发语言，选择"Java"。                                                        |
   | 描述    | 该参数为非必填。对微服务的介绍说明，长度不超过1024个字符。                                            |
      
   
   
8. 单击"确定"，完成微服务的创建。
 
 #### 步骤2：新建微服务变更
1. 重新进入微服务"概览"页面。
2. 切换到"变更"页签，进入微服务变更列表页面。
3. 单击"新建变更"，进入"新建变更" 页面，配置以下信息。 
   表3新建变更 
   | 参数项   | 说明                                                                               |
   |:---|:---|
   | 变更标题  | 变更的名称，输入"fix-a-bug"。                                                             |
   | 代码仓   | 变更关联的源码仓库，自动和微服务保持一致。                                                            |
   | 代码分支  | 变更新需求的开发分支，变更通过流水线发布成功后，会将代码分支自动合并至微服务的默认分支。选择"从默认分支拉取新分支"并输入分支名称"bugfix"。       |
   | 关联工作项 | 变更关联的工作项，选择[准备工作]中已创建的工作项"BUGFIX"。 |
      
   
   
4. 单击"确定"，完成变更的创建。 
   变更创建完成后，进入代码开发阶段，系统基于微服务默认分支自动创建出本次变更的特性分支，开发人员可以基于该特性分支进行代码开发，问题修复后，模拟向该分支提交代码。向分支提交代码请参考[上传代码文件到Repo](https://support.huaweicloud.com/usermanual-codeartsrepo/codeartsrepo_03_0010.html)。
   
   
 
 #### 步骤3：新建变更流水线
1. 在微服务列表页面，单击微服务名称，进入微服务"概览"页面。
2. 切换到"流水线"页签，进入微服务流水线列表页面。
3. 单击"新建流水线"，进入"新建流水线" 页面，配置以下信息。 
   表4新建变更流水线 
   | 参数项          | 说明                                                                                                                                |
   |:---|:---|
   | 名称           | 变更流水线的名称，输入"Pipeline-Test"。                                                                                                       |
   | 所属项目         | 变更流水线所在的项目，不可更改。                                                                                                                  |
   | 流水线源         | 变更流水线关联的源码类型，自动和微服务保持一致。                                                                                                          |
   | 代码仓          | 变更流水线关联的源码仓库，自动和微服务保持一致。                                                                                                          |
   | 默认分支         | 默认使用的分支，自动和微服务保持一致。                                                                                                               |
   | Repo HTTPS授权 | 打开"基于变更触发"后需配置"Repo HTTPS授权"，配置授权扩展点以提升代码仓操作权限。选择[准备工作]中已创建的授权扩展点"HttpsEndpoint01"。 |
   | 别名           | 仓库别名，设置别名后可生成仓库对应的系统参数，这里不设置。                                                                                                     |
   | 基于变更触发       | 打开"基于变更触发"，将当前流水线设置为微服务变更流水线。                                                                                                     |
   | 描述           | 该参数为非必填。对变更流水线的介绍说明，长度不超过1024个字符。                                                                                                 |
      
   
   
4. 单击"下一步"，选择"Maven构建"模板，自动生成阶段和任务，使用默认配置即可。
5. 单击"保存"，完成微服务变更流水线的创建。
 
 #### 步骤4：执行变更流水线
代码更新完成后，即可通过变更流水线执行变更。
1. 在微服务变更列表页面，单击变更名称，进入"变更详情"页面。
2. 单击右上角"提交发布"，弹出"提交发布"确认框，提示是否确认将变更提交至变更流水线。 
   图1提交发布   
   ![](https://support.huaweicloud.com/bestpractice-pipeline/zh-cn_image_0000001981168501.png "点击放大")
   
   
3. 单击"确定"，完成变更提交，页面跳转至对应变更流水线发布列表页面。
4. 单击右上角"执行"，弹出"执行配置"弹窗，选择刚提交的变更，其他配置保持默认。 
   图2执行配置   
   ![](https://support.huaweicloud.com/bestpractice-pipeline/zh-cn_image_0000002210694577.png "点击放大")
   
   
5. 单击"执行"，启动变更流程。 
   微服务变更流水线在运行过程中，会自动增加"合并集成分支"和"合并主干"阶段，并将本次变更关联的特性分支合并到该集成分支上。
   代码检查、构建任务执行成功后，系统自动进入"合并主干"阶段，并弹出"手动确认"对话框。
   
   
6. 单击"继续执行"，"合并主干"阶段执行完成后，系统将自动完成以下事项。 
   - 将本次发布的变更状态更新为"已发布"。
   
   - 将本次发布的变更关联的工作项状态更新为"已关闭"。
   
   - 将本次发布使用的集成分支代码内容合并到微服务默认分支，实现代码自动合并。
   
   
   至此，即完成了一次基本的微服务变更发布流程。
   若变更流水线执行失败，可根据报错提示排查失败原因，详情可参考[常见问题](https://support.huaweicloud.com/pipeline_faq/pipeline_faq_0015.html)。
   
   
 
