
# 编排流水线阶段
#### 什么是流水线阶段
流水线阶段是流水线上的基本组成部分，主要用于对流水线的任务做业务流程上的分类编排管理，每个阶段都有明确的输入、处理逻辑和输出，并且按照一定的顺序依次执行，让流水线上的业务流更加直观。用户可参考本章节进行配置。
#### 约束与限制
- 配置流水线的准出条件：
  - 当前仅支持"标准策略准出条件"，可以选择当前项目或租户下创建好的策略。
  
  - 流水线可以在各阶段单独设置准出条件，准出条件只对当前阶段有效。
  
  - 同一阶段中可以配置多个不同的准出条件。
   
- 一条流水线最多可配置16个阶段（包含后处理阶段）。
 
#### 费用说明
规则与策略功能需升级CodeArts套餐至基础版才可使用，开通套餐可参考[CodeArts计费模式概述](https://support.huaweicloud.com/price-devcloud/codearts_29_0003.html)。
#### 前提条件
- 已[开通并授权使用CodeArts Pipeline](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0033.html)。

- 当用户角色为"项目管理员"或者"流水线创建者"，可以编排流水线阶段，权限配置请参考[授权流水线服务](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0038.html#pipeline_01_0038__section182321614205915)。
 
#### 编排流水线阶段
1. [访问CodeArts Pipeline首页](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0014.html)。
2. 在流水线列表页搜索目标流水线，单击操作列![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001992628453.png)，选择"编辑"。
3. 进入流水线"任务编排"页面，单击![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001955909344.png)或"新建阶段"，可以为流水线添加新的阶段，添加完阶段后，可根据实际需要编辑、复制、删除、移动阶段、配置阶段准入类型。
   
   图1任务编排   
   ![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000002483864758.png "点击放大")
   表1管理阶段 
   | **操作项** | **说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   |:---|:---|
   | 编辑阶段    | 编辑流水线的阶段，单击![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001955909768.png)，弹出"编辑阶段"弹窗，可以配置阶段名称和阶段是否总是运行。 - 总是运行：选择"是"，表示流水线执行时，该阶段下的任务默认选中必须执行且不可取消。  - 总是运行：选择"否"，表示流水线执行时，该阶段下的任务默认选中但可以取消。  - 快速停止：选择"是"，表示流水线执行时，在并行执行的同一阶段内，若任一子任务失败，则立即停止该阶段所有并行任务，并标志本阶段为已停止。  - 快速停止：选择"否"，表示流水线执行时，在并行执行的同一阶段内，若任一子任务失败，则不会立即停止该阶段所有并行任务。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 复制阶段    | 复制流水线的阶段，单击![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001992509101.png)，可以实现复制阶段。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | 删除阶段    | 删除流水线的阶段，单击![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001992628905.png)，根据删除提示确认是否删除阶段。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 排序阶段    | 对流水线的阶段进行排序，单击![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001955909772.png)不松开，可以移动阶段，调整阶段顺序。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   | 阶段准入    | 通过阶段准入校验，控制流水线阶段的执行。单击![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001992509105.png "点击放大")，弹出"准入设置"窗口，可以配置阶段的准入类型。 - 自动：默认执行方式，流水线执行时自动进入下一阶段继续运行。  - 手动：流水线执行时需手动确认后才能进入下一阶段继续运行。  - 时间窗：流水线执行时需在配置好的时间段才能进入下一阶段继续执行。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 准出条件    | 流水线服务提供基于规则和策略的准出条件管理能力，是指在流水线阶段中配置的用于自动化看护的质量指标卡点，通过配置规则和策略，来实现阶段准出校验，并最终控制流水线的执行。 - 规则：基于扩展插件的输出阈值，设置比较关系和阈值条件，供策略使用，并最终应用到流水线准出条件中，作为准出条件的判断依据。配置方法请参考[配置流水线规则]。  - 策略：策略是一系列规则的集合，每个规则对应了一个步骤插件的输出指标值的条件模板，通过预定义策略，可以很方便地在多条不同流水线中应用同样的准出条件。策略实行分层管理，可分为[租户级策略]和[项目级策略]。用户可根据需要将策略资源应用到流水线作为准出条件来控制流水线的执行，保障产品交付质量。   1. 单击阶段下方"准出条件"，弹出"准出条件"侧滑框，将鼠标移动到准出条件卡片，单击"添加"。  2. 填写准出条件名称，选择策略。 ![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001955909776.png "点击放大")    3. 单击"确定"，即可添加一个准出条件。   |
      
   
   
4. （可选）[配置流水线后处理阶段]。
5. 阶段编排完成后，单击"保存"，弹出"保存信息成功"提示，流水线保存成功。 
   ![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000002483704970.png "点击放大")
   
   
   
 
 #### 配置流水线后处理阶段
在流水线任务编排页面，可根据需要配置后处理阶段。配置后，执行流水线时无论前置阶段成功与否，后处理阶段均会执行。支持用户按需添加插件，也可配置自定义开发插件，实现资源清理、第三方系统回调、消息通知等功能。
1. [访问CodeArts Pipeline首页](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0014.html)。
2. 选择目标流水线，单击![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000002365242194.png)，选择编辑，进入流水线编排页面。
3. 在后处理阶段下，配置任务插件，配置方法同[配置流水线任务](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0073.html#pipeline_01_0073__section588413493162)。
   
   ![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000002483865198.png "点击放大")
   
   - 一个流水线至多只能添加一个"后处理阶段"，并且该阶段位置必须在最后。
   
   - 默认生成的后处理阶段，总是运行默认选择"是"，也可以手动修改。
   
   - 如果配置了后处理阶段，并且运行时候选择了该阶段，那么执行流水线时，这个阶段始终会被执行到。
   
   
   
   
 
 #### 配置流水线规则
规则是一种租户级别的资源，可在当前租户下所有的租户级策略或项目级策略中使用。
1. [访问CodeArts Pipeline首页](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0014.html)。
2. 单击右上角头像，选择"租户设置"。
3. 单击左侧导航"策略管理 \> 规则"，进入规则列表页面。
4. 单击"新建规则"，进入"新建规则"页面，填写参数信息。 
   图2新建规则
   ![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000002414107817.png "点击放大")
   表2规则参数说明 
   | **参数项** | **说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 取值样例           |
   |:---|:---|:---|
   | 名称      | 规则名称，默认根据当前时间生成。支持中文、大小写英文字母、数字、"-"、"_"，长度不超过128个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 输入"Test-1"。    |
   | 类型      | 规则类型，与插件类型对应。支持构建、代码检查、测试、部署和通用五种类型插件。 - 构建：用于代码构建的执行插件。  - 代码检查：用于检查代码质量的插件。  - 测试：用于测试接口性能的插件。  - 部署：用于发布应用到目标环境的插件。  - 通用：用于扩展服务功能的插件。   | 选择"代码检查"。      |
   | 选择插件    | 插件类型下的所有插件。包括构建类型插件、代码检查类型插件、测试类型插件、部署类型插件和通用类型插件。 - 构建类型插件：通过设置相关构建结果的阈值，对构建阶段结果进行判断。如：Build构建插件，对Maven单元测试返回的结果进行判断。  - 代码检查类型插件：通过设置相关检查项的阈值，对代码检查结果进行判断。如：Check代码检查插件，对代码检查缺陷进行判断。  - 测试类型插件：通过设置相关测试结果的阈值，对测试阶段结果进行判断。如：Testplan接口测试插件，对测试套件中测试用例通过率进行判断。                  | 选择"Check代码插件"。 |
   | 插件版本    | 插件的所有版本。仅支持配置了阈值的插件版本。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 选择"0.0.3"。     |
   | 阈值配置    | 根据选中的插件版本自动获取的插件输出阈值配置，根据需要为插件输出设置比较关系。规则阈值将用于策略，并最终配置到流水线中作为流水线阶段准出的判断条件。 **文本类型一般用于"包含"和"不包含"比较关系中；检查项为通过率时，数值取值范围为0\~1。**                                                                                                                                                                                                                                                                                                                                                                                                              | -              |
   | 代码度量    | 代码度量可准确的反映提交代码的质量，助力用户及时发现并修改问题，提升研发效能。代码度量包括以下两种类型的问题： - 平均圈复杂度：代码的复杂度。  - 代码重复率：代码检查服务通过重复块、重复行、重复率来识别被测代码的重复情况。 详情请参见[查看代码度量](https://support.huaweicloud.com/usermanual-codecheck/codeartscheck_01_7008.html)。                                                                                       | -              |
      
   
   
5. 单击"确定"，弹出"创建规则成功"提示，即可在规则列表生成一条规则。 
   ![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000002581327861.png "点击放大")
   - 在规则列表页面，单击"操作"列![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001992615593.png)，可编辑规则。
     - 规则类型不允许修改。
     
     - 编辑规则后，所有引用了该规则的策略内容都将自动同步修改。
      
   
   - 在规则列表页面，单击"操作"列![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001955896464.png)，弹出删除警告对话框，确认删除后，单击"确定"可删除规则。规则删除后，所有引用了该规则的策略都将自动同步去除引用。
     ![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000002282124605.png)
     
     
    
   
   
 
#### 配置流水线策略
流水线策略包括租户级策略和项目级策略。租户级策略是一种租户级别的资源，可应用于当前租户下所有流水线的准出条件，**租户级策略默认存在一条"系统策略"，用户可查看和使用该策略，但不能编辑和删除** 。项目级策略是一种项目级别的资源，可应用于当前项目下所有流水线的准出条件。**且** **租户级策略和项目级策略下，单个策略中最多可配置20个规则。**
- [配置流水线租户级策略]
  
  1. [访问CodeArts Pipeline首页](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0014.html)。
  
  2. 单击右上角头像，选择"租户设置"。
  
  3. 单击左侧导航"策略管理 \> 策略"，进入租户级策略列表页面。
  
  4. 单击"新建策略"，进入"新建策略"页面，填写参数信息。 
     ![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000002282206969.png "点击放大")
     表3租户级策略参数信息 
     | **参数项** | **说明**                                                                                                                                                                                                                                                                                                                                                                                                                                               | 取值样例        |
     |:---|:---|:---|
     | 名称      | 策略名称，默认根据当前时间生成。支持中文、大小写英文字母、数字、"-"、"_"，长度不超过128个字符。                                                                                                                                                                                                                                                                                                                                                                                                 | 输入"Test01"。 |
     | 规则      | 选中的规则会在页面右侧展示，可对每条规则进行如下操作： - 编辑：单击规则右上方"详情"，可以查看规则详情，继续单击右上方"编辑"，可修改规则。  - 开关：单击规则右上方![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001992495785.png)，可打开/关闭规则，关闭后，该规则在应用到流水线准出条件中会自动关闭并不做拦截校验。   | 勾选"Test-1"。 |
        
     
     
  
  5. 单击"确定"，弹出"新建策略成功"提示，即生成一条策略。 
     ![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000002550569246.png "点击放大")
     - 在策略列表页面，单击列表右侧![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001992615597.png)，可编辑策略。
     
     - 在策略列表页面，单击列表右侧![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001955896468.png)，可查看策略，继续单击右上方"编辑"，可编辑策略。
     
     - 在策略列表页面，单击列表右侧![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001992495789.png)，选中"复制"，可基于当前策略快速复制一个新策略。
     
     - 在策略列表页面，单击列表右侧![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001992615601.png)，选中"删除"，弹出删除警告对话框，确认后单击"删除"，可删除策略。删除策略时，系统会提示当前有多少流水线引用了该策略，删除后相关流水线调度运行时会运行失败。
     
     - 在策略列表页面，单击列表右侧![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001955896476.png)，可以打开/关闭策略。关闭策略时，如果策略有被引用，系统会提示当前有多少流水线引用了该策略，关闭后相关流水线调度运行时会忽略该策略中的准出条件。
      
     
     
   
- [配置流水线项目级策略]
  
  1. [访问CodeArts Pipeline首页](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0014.html)，进入项目下流水线。
  
  2. 单击"策略"，进入项目级策略列表页面。
  
  3. 单击"新建策略"，进入"新建策略"页面，填写参数信息。 
     图3新建策略   
     ![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000002282217705.png "点击放大")
     表4项目级策略参数信息 
     | **参数项** | **说明**                                                                                                                                                                                                                                                                                                                                                                                                                                          | 取值样例        |
     |:---|:---|:---|
     | 名称      | 策略名称，默认根据当前时间生成。支持输入中文、大小写英文字母、数字、"-"、"_"，长度不超过128个字符。                                                                                                                                                                                                                                                                                                                                                                                          | 输入"Test02"。 |
     | 规则      | 选中的规则会在界面右侧展示，可对每条规则进行如下操作： - 编辑：单击规则右上方"详情"，可查看规则详情，继续单击右上方"编辑"，可修改规则。  - 开关：单击规则右上方![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001992495793.png)，可打开/关闭规则，关闭后，该规则在应用到流水线准出条件中会自动关闭并不做拦截校验。   | 勾选"Test-1"。 |
        
     
     
  
  4. 单击"确定"，弹出"新建策略成功"提示，即在策略列表生成一条项目级策略。 
     ![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000002550728890.png "点击放大")
     - 在策略列表页面，单击列表右侧![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001992615605.png)，可编辑策略。
     
     - 在策略列表页面，单击列表右侧![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001955896480.png)，可查看策略，继续单击右上方"编辑"，可编辑策略。
     
     - 在策略列表页面，单击列表右侧![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001992495797.png)，选中"复制"，可基于当前策略快速复制一个策略。
     
     - 在策略列表页面，单击列表右侧![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001992615609.png)，选中"删除"，弹出删除警告对话框，确认后单击"删除"，可删除策略。
       删除策略时，系统会提示当前有多少流水线引用了该策略，删除后相关流水线调度运行时会运行失败。
       
     
     - 在策略列表页面，单击列表右侧![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001955896484.png)，可以打开/关闭策略，
       关闭策略时，如果策略有被引用，系统会提示当前有多少流水线引用了该策略，关闭后相关流水线调度运行时会忽略该策略中的准出条件。
       
     
     - 在策略列表页面，单击页面右上方"租户策略"，打开"租户策略"侧滑框，可以查看、复制和继承租户级策略。
       - 查看：单击操作列![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001992495801.png)，可查看租户级策略，继续单击右上方"编辑"，可编辑租户级策略。
       
       
       
       - 复制：单击操作列![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001992615613.png)，可基于当前租户级策略复制一个项目级策略。
       
       - 继承：单击操作列![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001955896488.png)，可基于当前租户级策略继承一个项目级策略，通过继承生成的项目级策略，继承的规则实时和父租户级策略保持一致。
        
      
     
     
   
