
# 新建流水线（YAML化）
 #### 准备工作
- 已[开通并授权使用CodeArts Pipeline](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0033.html)。
- [新建项目](https://support.huaweicloud.com/usermanual-projectman/projectman_ug_2001.html)。命名为project01。
- [新建代码仓库](https://support.huaweicloud.com/usermanual-codeartsrepo/codeartsrepo_03_0077.html)。命名为Repo02.
- 准备YAML文件。 通过YAML化方式创建流水线，可以在新建过程中创建一个新的YAML文件，也可以提前编排好YAML文件。YAML化流水线通常由触发方式on、参数env、任务jobs等组成，详见[YAML语法规范](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0009.html)。
  
 
#### 约束与限制
YAML流水线仅支持使用CodeArts Repo代码仓。
#### YAML文件示例
为了让您快速理解YAML化流水线，以下通过流水线串联编译构建任务、代码检查任务、部署任务，并在编译构建任务中引用流水线参数的YAML文件为您介绍YAML整体结构。
```
env:                                                 # 以键值对的形式定义环境变量，定义后可在流水线的任意任务中引用
  image_version: 1.0.0
jobs:                                                # 定义组成流水线的任务
  build:                                             # 任务ID，定义任务的唯一标识
    name: maven build                                # 任务的名称，在图形化界面中会展示该名称
    steps:                                           # 定义组成任务的步骤
      - name: My build step                          # 步骤的名称，在图形化界面中会展示该名称
        uses: CodeArtsBuild                          # 指定步骤运行的插件
        with:                                        # 以键值对的形式定义插件的运行参数，可引用env中定义的变量。
          jobId: 878b4d13cb284d9e8f33f988a902f57c    # 任务id。获取方法：在任务详情页，拷贝浏览器URL末尾的32位数字、字母组合的字符串，即为任务ID。
          artifactIdentifier: my_image
          version: ${{ env.image_version }}
  check:
    name: code check
    steps:
      - name: My check step
        uses: CodeArtsCheck
        with:
          jobId: 43885d46e13d4bf583d3a648e9b39d1e
          checkMode: full
  deploy:
    name: cce deploy
    needs:                                            # 使任务在指定的任务结束后才开始运行
      - build
      - check
    if: ${{ completed() }}                            # 指定任务的运行条件
    steps:
      - name: My deploy step
        uses: CodeArtsDeploy
        with:
          jobId: 9c5a5cda6ffa4ab583380f5a014b2b31
          version: ${{ env.image_version }}
```
#### 新建YAML流水线
1. [访问CodeArts Pipeline首页](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0014.html)。
2. 单击"新建流水线"，进入"基本信息"页面，参考[表1]配置流水线基本信息。
   
    表1流水线基本信息参数说明 
   | **参数项**      | **说明**                                                                                                                                                                                                                                                                                                                                                                | 取值样例                      |
   |:---|:---|:---|
   | 名称           | 流水线的名称，支持自定义。支持中文、大小写英文字母、数字、"-"、"_"，长度不超过128个字符。                                                                                                                                                                                                                                                                                                                     | 输入"pipeline02"。           |
   | 委托URN        | IAM的委托唯一标识。未配置时，使用默认委托。配置后，执行流水线中任务时使用委托身份和权限访问其他云服务。                                                                                                                                                                                                                                                                                                                 | -                         |
   | 所属项目         | 流水线归属的项目。 - 从流水线服务首页入口新建流水线，请根据实际需要选择已创建的项目。  - 从项目下流水线入口新建流水线，所属项目默认为当前项目，不可更改。                                                                | 默认选择的项目，此处默认为"project01"。 |
   | 流水线分组        | 流水线的分组，可在新建流水线时选择分组，同时也可新建或编辑分组。                                                                                                                                                                                                                                                                                                                                      | -                         |
   | 流水线源         | 流水线关联的源类型，选择"Repo"：即CodeArts Repo，提供企业代码托管的全方位服务，为软件开发者提供基于Git的在线代码托管服务。                                                                                                                                                                                                                                                                                              | 选择"Repo"。                 |
   | 创建方式         | 创建流水线的方式。选择"YAML化编排"：以代码化YAML方式编排流水线，支持语法自动补齐和校验，方便多流水线批量配置。                                                                                                                                                                                                                                                                                                          | 选择"YAML化编排"。              |
   | 代码仓          | 流水线关联的代码仓库，可选择提前新建好的仓库，也可单击"新建仓库"进行创建，新建仓库可参考[新建代码仓库](https://support.huaweicloud.com/usermanual-codeartsrepo/codeartsrepo_03_0077.html)。                                                                                                                                                                                                                             | 选择"Repo02"。               |
   | 默认分支         | 仓库默认分支，手工或定时执行流水线时默认使用的分支。                                                                                                                                                                                                                                                                                                                                            | 选择"master"。               |
   | 配置方式         | - 新建yaml文件：在编排流水线时，创建一个新的YAML文件。  - 已有yaml文件：基于已有YAML文件进行编排，编排后的内容会覆盖原YAML文件。YAML文件编写请参考[YAML语法规范](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0009.html)。   | 选择"新建yaml文件"。             |
   | 选择yaml文件     | 配置方式选择"已有yaml文件"时，需配置此参数，此参数为必填项。 选择提前准备好并存储在代码仓库中的YAML文件，选择对应分支并输入YAML文件的相对路径。                                                                                                                                                                                                                                                     | -                         |
   | Repo HTTPS授权 | 该参数为非必填。配置授权扩展点以提升代码库操作权限，当前主要用于流水线服务的微服务变更功能模块及相关插件。可选择[准备工作]中提前创建的扩展点，也可单击"新建授权"进行创建，具体操作请参考[新建CodeArts服务扩展点](https://support.huaweicloud.com/usermanual-devcloud/devcloud_01_0019.html)。                                                                                                                                 | -                         |
   | 别名           | 该参数为非必填。仓库别名，设置别名后可基于别名生成仓库对应的系统参数，如："别名_REPOSITORY_NAME"，表示仓库名称。生成的参数可在参数设置页面查看，并在流水线中通过"${参数名}"进行引用。 仅支持输入大小写英文字母、数字、"_"，长度不超过128个字符。                                                                                                                                                                                            | -                         |
   | 描述           | 该参数为非必填。对流水线的描述，长度不超过1024个字符。                                                                                                                                                                                                                                                                                                                                         | -                         |
      
   
   
3. 配置完基本信息，单击"确定"，进入"任务编排"页面。 
   - 左侧为YAML编辑区域，请参考[YAML语法规范](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0009.html)编写YAML，此处以串联编译构建任务、代码检查任务为例。
   
   - 右侧为流水线插件列表，请根据需要进行添加。
   
   
   编排过程支持语法规范校验；单击"预览"，可切换至图形化界面预览效果。
   图1任务编排   
   ![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000002599465433.png "点击放大")
   
   
4. 编排完任务，单击"保存"，填写提交信息，选择推送分支。 
   ![](https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000001981372176.png)
   
   - 选项一表示推送到已有分支：如果是"新建yaml文件"方式新建流水线，已有分支为默认分支；如果是基于"已有yaml文件"方式新建流水线，已有分支则为YAML文件所在的分支。
   
   - 选项二表示推送到新分支：基于上述已有分支创建一个新分支，勾选"创建合并请求"，则会创建一个从新分支到已有分支的合并请求。
   
   
   
   
5. 单击"确定"，弹出"保存信息成功"提示，完成流水线的创建。
 
#### 操作视频
本视频介绍如何创建并执行YAML流水线任务。
<video controls="controls" preload="none" id="object142401042103519" class="idp-external-video" src="https://res-video.hc-cdn.com/cloudbu-site/china/zh-cn/support/codeartspipeline_video/1749714896590557948.mp4" title="创建并执行YAML流水线" poster="https://support.huaweicloud.com/usermanual-pipeline/zh-cn_image_0000002356466829.jpg" height="280.0000" width="500.0000"></video>
