
# 在AppStage开发中心通过流水线编译构建版本
流水线管理是开发中心结合[流水线 CodeArts Pipeline](https://www.huaweicloud.com/product/cloudpipeline.html)和[编译构建 CodeArts Build](https://www.huaweicloud.com/product/cloudbuild.html)服务的能力，提供可视化、可编排的CI/CD持续交付软件生产线，帮助企业快速转型，实现DevOps持续交付高效自动化，缩短应用TTM（Time to Market）交付周期，提升研发效率。
流水线服务本质上是一个可视化的自动化任务调度平台，需要配合软件开发生产线中编译构建、代码检查、测试计划、部署等服务的自动化任务使用。根据用户需要的场景，如开发测试环境应用部署、生产环境应用部署等，对这些自动化任务进行自定义编排，一次配置后就可以一键自动化触发调度执行，避免频繁低效的手工操作。
关于流水线的详细介绍文档请参考[流水线 CodeArts Pipeline](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0013.html)和[编译构建 CodeArts Build](https://support.huaweicloud.com/cloudbuild/index.html)。
本章节介绍如何使用开发中心集成的CodeArts Pipeline和CodeArts Build服务能力，如果用户需要使用其他流水线管理工具，可以将工具集成进开发中心，具体操作请参见[集成工具链到开发中心](https://support.huaweicloud.com/usermanual-wisestudio/wisestudio_04_0002.html)。
#### 前提条件
- 已[在AppStage开发中心为服务关联CodeArts项目](https://support.huaweicloud.com/usermanual-wisestudio/appstage_04_0612.html)。
- 已[在AppStage开发中心创建版本](https://support.huaweicloud.com/usermanual-wisestudio/appstage_04_0044.html)。
- 已获取项目经理、开发人员角色权限，权限申请方法请参见[申请权限](https://support.huaweicloud.com/usermanual-appstage/appstage_04_0009.html)。
 
#### 创建并关联流水线
1. 在开发中心首页下方的"我的团队"区域，选择需要操作的团队卡片，进入该团队空间。 
   如果该团队关联多个服务，可在左侧团队名称右侧单击![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002143045012.png)切换团队关联的其他服务。也可在左侧团队名称右侧单击![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002179573517.png)切换其他团队。
   
   
2. 在左侧导航栏选择"流水线管理"。
3. 在"流水线管理"页面，选择版本，单击"关联流水线"，在"关联流水线"页面，根据界面提示单击"立即前往"，可以进入CodeArts页面创建流水线，如[图1]所示。
   
   图1新建流水线   
   ![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002007575060.png)
   
   
4. 在"流水线管理"页面，单击"新建流水线"。 
   进入"新建流水线 \> 基本信息"页面，当前服务即为所属项目，填写流水线名称，根据需要选择流水线源，并配置相关参数，流水线源及相关参数说明如[表1]所示。
   - 其中，GitCode流水线源当前仅支持"北京四"和"广州"局点白名单用户。如果您需要开通此功能，请新建工单或拨打客服热线进行咨询。
   
   - 如果用户新建的流水线任务不需要关联代码仓，流水线源也可以选择"暂不选择"。
   
   
    表1参数说明 
   | **流水线源**                                                                                                       | **参数** **项**          | **说明**                                                                                                                                                             |
   |:---|:---|:---|
   | **Repo** 提供企业代码托管的全方位服务，为软件开发者提供基于Git的在线代码托管服务。 | 代码库名称                 | 选择可用的源码仓库。                                                                                                                                                         |
   | **Repo** 提供企业代码托管的全方位服务，为软件开发者提供基于Git的在线代码托管服务。 | 默认分支                  | 手工或定时执行流水线时默认使用的分支。                                                                                                                                                |
   | **Repo** 提供企业代码托管的全方位服务，为软件开发者提供基于Git的在线代码托管服务。 | CodeArts Repo https授权 | 配置授权扩展点以提升代码库操作权限，主要用于微服务变更流水线和部分仓库操作插件。                                                                                                                           |
   | **Repo** 提供企业代码托管的全方位服务，为软件开发者提供基于Git的在线代码托管服务。 | 别名                    | 输入别名，则会生成该仓库对应的相关系统参数（可在参数设置页面查看），否则不会生成。 用户选择Repo流水线源时，如果设置了仓库别名，则会在系统预定义参数页面生成该仓库对应的系统参数，否则不生成。 |
   | **Repo** 提供企业代码托管的全方位服务，为软件开发者提供基于Git的在线代码托管服务。 | 描述                    | 对流水线的描述。                                                                                                                                                           |
   | **码云** 连接到码云账号之后可以获取该账号下的仓库、分支等信息。             | 服务扩展点                 | 选择可用码云服务扩展点，或单击"新建服务扩展点"新建通用Git服务扩展点，具体操作请参见[新建CodeArts服务扩展点](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0011.html)。                          |
   | **码云** 连接到码云账号之后可以获取该账号下的仓库、分支等信息。             | 代码库名称                 | 选择可用的源码仓库。                                                                                                                                                         |
   | **码云** 连接到码云账号之后可以获取该账号下的仓库、分支等信息。             | 默认分支                  | 手工或定时执行流水线时默认使用的分支。                                                                                                                                                |
   | **码云** 连接到码云账号之后可以获取该账号下的仓库、分支等信息。             | 别名                    | 输入别名，则会生成该仓库对应的相关系统参数（可在参数设置页面查看），否则不会生成。 用户选择码云流水线源时，如果设置了仓库别名，则会在系统预定义参数页面生成该仓库对应的系统参数，否则不生成。     |
   | **码云** 连接到码云账号之后可以获取该账号下的仓库、分支等信息。             | 描述                    | 对流水线的描述。                                                                                                                                                           |
   | **GitHub** 连接到Github账号后可以获取该账号下的仓库、分支等信息。      | 服务扩展点                 | 选择可用GitHub服务扩展点，或单击"新建服务扩展点"新建GitHub服务扩展点，具体操作请参见[新建CodeArts服务扩展点](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0011.html)。                     |
   | **GitHub** 连接到Github账号后可以获取该账号下的仓库、分支等信息。      | 代码库名称                 | 选择可用的源码仓库。                                                                                                                                                         |
   | **GitHub** 连接到Github账号后可以获取该账号下的仓库、分支等信息。      | 默认分支                  | 手工或定时执行流水线时默认使用的分支。                                                                                                                                                |
   | **GitHub** 连接到Github账号后可以获取该账号下的仓库、分支等信息。      | 描述                    | 对流水线的描述。                                                                                                                                                           |
   | **GitCode** 连接到Gitcode账号后可以获取该账号下的仓库、分支等信息。      | 服务扩展点                 | 选择可用Gitcode服务扩展点，或单击"新建服务扩展点"新建GitCode服务扩展点，具体操作请参见[新建CodeArts服务扩展点](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0011.html)。                   |
   | **GitCode** 连接到Gitcode账号后可以获取该账号下的仓库、分支等信息。      | 代码库名称                 | 选择可用的源码仓库。                                                                                                                                                         |
   | **GitCode** 连接到Gitcode账号后可以获取该账号下的仓库、分支等信息。      | 默认分支                  | 手工或定时执行流水线时默认使用的分支。                                                                                                                                                |
   | **GitCode** 连接到Gitcode账号后可以获取该账号下的仓库、分支等信息。      | 描述                    | 对流水线的描述。                                                                                                                                                           |
   | **通用Git** 通过通用Git服务扩展点可以访问扩展点中配置的仓库。           | 服务扩展点                 | 选择已有通用git服务扩展点，或单击"新建服务扩展点"新建通用Git服务扩展点，具体操作请参见[新建CodeArts服务扩展点](https://support.huaweicloud.com/usermanual-pipeline/pipeline_01_0011.html)。                       |
   | **通用Git** 通过通用Git服务扩展点可以访问扩展点中配置的仓库。           | 代码库地址                 | 选择可用的源码仓库。                                                                                                                                                         |
   | **通用Git** 通过通用Git服务扩展点可以访问扩展点中配置的仓库。           | 默认分支                  | 手工或定时执行流水线时默认使用的分支。                                                                                                                                                |
   | **通用Git** 通过通用Git服务扩展点可以访问扩展点中配置的仓库。           | 描述                    | 对流水线的描述。                                                                                                                                                           |
      
   
   
5. 配置基本信息，单击"下一步"。 
   进入"新建流水线 \> 模板选择"页面，请根据需要选择对应模板，在模板基础上快速新建任务；也可以选择"空模板"，即不使用模板，直接新建。如[图2]所示。
   图2选择模板   
   ![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002043894033.png)
   
   
6. 选择模板后，单击"确定"，进入"任务编排"页面，根据需要[配置流水线]，然后单击"保存"。
7. 在"关联流水线"页面，勾选已创建和配置完成的流水线。
8. 单击"确定"。所选流水线与当前服务版本绑定。
 
 #### 配置流水线（以添加代码检查任务为例）
1. 在流水线的"任务编排"页面，单击![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002043773077.png)，新建阶段，如[图3]所示。
   
   图3新建阶段   
   ![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002043773057.png)
   
   
2. 单击![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002007575064.png)，在"编辑阶段"页面，修改"阶段名称"为"代码检查"，并将"总是运行"设置为"否"（选择"是"，表示流水线执行时，该阶段下的任务默认选中必须执行且不可取消；选择"否"，表示流水线执行时，该阶段下的任务默认选中但可以取消。），然后单击"确定"。
3. 在流水线的"代码检查"阶段，单击"新建任务"。
4. 在"新建任务"页面的右侧区域，选择"代码检查"页签，单击"CodeArtsCheck代码检查"后的"添加"，将此插件添加到任务中，如[图4]所示。
   
   图4代码检查   
   ![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002007575072.png)
   
   
5. 在"CodeArtsCheck代码检查"页面右侧区域"请选择需要调度的任务"处单击"点击创建"，如[图5]所示，进入"新建任务"页面，参照[表2]配置参数信息（此处以创建Repo源码源检查任务为例），配置完成后单击"确定"。
   
   图5创建代码检查任务   
   ![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002007575068.png)
    表2参数说明 
   | **参数项** | **描述**                |
   |:---|:---|
   | 所属项目    | 任务所属项目。默认填写，无需设置。     |
   | 新建方式    | 支持直接新建、基于自定义模板新建。     |
   | 代码源     | 选择Repo，从代码托管拉取代码进行检查。 |
   | 任务名称    | 代码检查任务名称，可自定义。        |
   | 代码仓     | 选择需要检查的代码仓库。          |
   | 默认分支    | 填写需要检查的仓库分支名称。        |
   | 检查语言    | 选择需要检查的代码语言。          |
      
   
   
6. 返回[5]的"任务配置"页面，在"请选择需要调度的任务"下拉列表中选择已配置完成的代码检查任务，"仓库"在选择调度的任务后，自动关联且不可修改，其他参数无需配置，保持默认即可。
7. 单击"确定"，添加代码检查任务完成。
8. 单击"任务编排"页面右上角"保存"，保存流水线的任务配置。
 
#### 配置流水线（以添加业务包构建任务为例）
1. 在流水线的"任务编排"页面，单击![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002043773065.png)，新建阶段。
2. 单击![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002007733326.png)，在"编辑阶段"页面，修改"阶段名称"为"构建阶段"，并将"总是运行"设置为"是"（选择"是"，表示流水线执行时，该阶段下的任务默认选中必须执行且不可取消；选择"否"，表示流水线执行时，该阶段下的任务默认选中但可以取消。），然后单击"确定"。
3. 在流水线的"构建阶段"，单击"新建任务"。
4. 在"新建任务"页面的右侧区域，选择"构建"页签，单击"Build构建"后的"添加"，将此插件添加到任务中。
5. 在"Build构建"页面右侧区域"请选择需要调用的任务"处单击"点击创建"，如[图6]所示。
   
   图6Build构建任务配置   
   ![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002007575040.png)
   
   
6. 在"新建构建任务"页面的"基本信息"页面，自定义任务名称（以"adadss-build"为例），归属项目默认为当前服务，源码源选择"Repo"，选择对应的代码仓库（以创建好的"adadss"仓库为例）以及分支"master"，单击"下一步"。
7. 在"构建模板"页面，选择"空白构建模板"模板，然后单击"确定"，进入"构建步骤"的"图形化"页签，该页面的"构建环境配置"和"代码下线配置"无需配置，保持默认配置即可。
8. 配置构建步骤"Maven构建"。 
   1. 返回"构建步骤"页签，单击"点击添加构建步骤"，在右侧"添加步骤"页面搜索"Maven构建"，鼠标移至插件卡片并单击"添加"，如[图7]所示。
      图7Maven构建   
      ![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002043894009.png) 
   
   2. 执行maven构建命令将业务代码打包，不同项目有所不同。 参考示例：mvn*-Dassembly clean compile package -Dmaven.test.skip=true -U -T4*
      如果某些jar包依赖不到，可将仓库地址添加在setting配置的公有依赖仓库。
      
   
   
   
   
9. 配置镜像构建。 
   1. 登录华为云容器镜像服务控制台，在左侧导航栏选择"我的镜像"，单击右上角"页面上传"，在"页面上传"对话框，创建组织（必须使用华为云账号），单击"选择镜像文件"，选择已经准备好的基础镜像tar包，单击"开始上传"，待任务进度显示"上传完成"，表示镜像文件上传成功。
      基础镜像tar包仅需上传一次，后续可直接从镜像文件列表中选取。
      
   
   2. 在镜像仓库找到[9.a]上传的基础镜像，参照[图8]复制镜像地址。
      图8复制镜像地址   
      ![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002043894001.png) 
   
   3. 将[9.b]复制的镜像地址粘贴到Dockerfile文件中第一行FROM命令后，如[图9]所示。
      图9将镜像地址粘贴到Dockerfile文件中   
      ![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002043894017.png) 
   
   4. 返回华为云容器镜像服务控制台镜像列表中单击镜像tar包名称，进入镜像详情页面，选择"Pull/Push指南"页签，单击"操作步骤"中的"生成登录指令"。
   
   5. 在"登录指令"对话框中的"临时登录指令"框的指令末尾处单击![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002007733330.png)，复制临时登录指令，如[图10]所示。
      图10复制临时登录指令   
      ![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002043894025.png) 
   
   6. 返回"构建步骤"页面，单击"添加步骤"，在右侧"添加步骤"页面搜索"执行Docker命令"，鼠标移至该插件卡片并单击"添加"。
   
   7. 单击"执行Docker命令"步骤，在右侧"命令"参数下单击"添加"添加docker命令，在"命令"下拉框中选择"login"，参数框中输入[9.e]获取的临时登录指令中login后的部分，例如"-u \*\*\*\*\*\*@K5X8GVN5B4H4B8KB9SDO -p 1dd00acee886bd05886cded19f5af1cb1e96326e4354fc0f3f493f12a3586518 swr.\*\*\*\*\*\*.\*\*\*\*\*\*.com"，登录环境以便Dockerfile文件中可正常获取基础镜像。
   
   8. 在"操作"列单击"+"继续添加docker命令，"命令"下拉框中选择"build"，并在参数框中输入命令，指定代码仓中的Dockerfile文件并构建镜像。 例如构建helloworldservice:23.11.02.1镜像，可输入"-t helloworldservice:23.11.02.1 -f *./deploy_docker/Dockerfile* ."，其中"*./deploy_docker/Dockerfile*"为Dockerfile文件目录。
      工作目录一般为根目录。
      
   
   9. 在"操作"列单击"+"继续添加docker命令，"命令"下拉框中选择"save"，并在参数框中输入命令，将镜像包保存为tar包。
      例如将elloworldservice:23.11.02.1镜像包保存为helloworldservice.23.11.02.1.tar包，可输入"-o helloworldservice.23.11.02.1.tar helloworldservice:23.11.02.1"。至此，添加docker命令完成，如[图11]所示。
      图11执行docker命令   
      ![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002043894005.png) 
   
   
   
   
10. 返回"构建步骤"页面，单击"添加步骤"，在右侧"添加步骤"页面搜索"Maven构建"，鼠标移至插件卡片并单击"添加"。执行zip命令，将tar包与业务代码中的package.json文件直接压缩成一个zip包。
    
    如下命令，将helloworldservice.23.11.02.1.tar和package.json文件压缩为helloworldservice_23.11.02.1.zip包。
    zip*helloworldservice_23.11.02.1.zip helloworldservice.23.11.02.1.tar package.json*
    
    
11. 继续单击"添加步骤"，添加"上传文件到OBS"插件，在"上传文件到OBS"页面，参照[表3]配置相关参数，配置完成后单击右上角"新建"，配置构建任务完成。
    
     表3"上传文件到OBS"（业务包）步骤配置的参数说明 
    | 参数名称     | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
    |:---|:---|
    | 步骤显示名称   | 构建步骤的名称，默认为"上传文件到OBS"，保持默认或自定义修改均可。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
    | 授权用户     | 在下拉列表选择： - 当前用户：上传到当前租户的OBS桶。  - 其他用户：可以通过选择IAM账号的方式上传到指定租户的OBS桶。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
    | IAM账号    | "授权用户"选择"其他用户"时需配置此参数，配置步骤如下： 1. 单击"管理IAM账号"，进入"服务扩展点管理"页面。  2. 单击"新建服务扩展点"，选择"IAM账户"，弹出"新建服务扩展点"对话框，填写以下参数，补充租户下用户的AK、SK即可： - 连接名称：服务扩展点的名称。例如"obs权限"。  - Access Key Id：访问密钥ID（AK），[获取访问密钥AK/SK](https://support.huaweicloud.com/iam_faq/iam_01_0618.html)。  - Secret Access Key：秘密访问密钥（SK），[获取访问密钥AK/SK](https://support.huaweicloud.com/iam_faq/iam_01_0618.html)。    3. 信息填写完成，单击"确定"。   |
    | 构建产物路径   | 路径为[10]的zip包的相对路径或输入\*模糊匹配（如"./DemoServiceB/\*.zip"）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
    | 桶名       | 用户自定义构建结果上传到的目标OBS桶名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
    | OBS存储目录  | 用户自定义构建结果在OBS上的存储目录                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
    | OBS存储文件名 | 非必填项，构建结果在OBS上的存储文件名（不包含目录），留空时可上传多个文件，取构建产物文件名为OBS存储文件名；不为空时只能上传单个文件，如application.jar。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
    | 是否上传文件夹  | 非必填项，可选择是否开启上传文件夹。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
    | OBS头域    | 非必填项，上传文件时加入一个或多个自定义的响应头，当用户下载此对象或查询此对象元数据时，加入的自定义响应头会在返回消息的头域中出现。如："键"填写成"x-frame-options"，"值"填写成"false"，即可禁止OBS中存放的网页被第三方网页嵌入。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
       
    
    
12. 返回[5]的"任务配置"页面，在"请选择需要调用的任务"下拉列表中选择已配置完成的构建任务，"仓库"下拉列表选择[创建代码仓库](https://support.huaweicloud.com/usermanual-wisestudio/appstage_04_0710.html)中已创建的仓库，其他参数无需配置，保持默认即可。
13. 单击"确定"，添加业务包构建任务完成。
14. 单击"任务编排"页面右上角"保存"，保存流水线的任务配置。
 
#### 配置流水线（以添加IaC自动部署包构建任务为例）
1. 在流水线的"任务编排"页面的"构建阶段"，单击![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002043773093.png)，如[图12]所示。
   
   图12并行任务   
   ![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002043773085.png)
   
   
2. 在"新建任务"页面的右侧区域，选择"构建"页签，单击"Build构建"后的"添加"，将此插件添加到任务中。
3. 在"Build构建"页面右侧区域，设置IaC自动部署包构建任务"名称"（如设置名称为"Build构建_IaC"），在"请选择需要调用的任务"处单击"点击创建"。
4. 在"新建构建任务 \> 基本信息"页面，自定义任务名称（以"adadss-build-IaC"为例），归属项目默认为当前服务，源码源选择"Repo"，选择对应的代码仓库（例如"adadss"）以及分支"master"，单击"下一步"。
5. 在"新建构建任务 \> 构建模板"页面，选择"空白构建模板"模板，然后单击"确定"，进入"构建步骤"的"图形化"页签，该页面的"构建环境配置"和"代码下线配置"无需配置，保持默认配置即可。
6. 返回"构建步骤"页签，单击"点击添加构建步骤"，在右侧"添加步骤"页面搜索"Maven构建"后单击"添加"。
7. 在右侧"Maven构建"页面的命令窗口，输入如下示例的构建命令，以[图13]示例，参考示例命令：mvn"-am -pl iacspec -Dassembly clean compile package -Dmaven.test.skip=true -U -T4"，通过执行指定目录下的pom.xml文件将HelloWorld文件夹下的文件压缩成zip文件。
   
   [图13]中"build.sh"、"app_define.json"、"iacspec.xml"、"pom.xml"这些文件为自定义的脚本文件。
   图13压缩zip包   
   ![](https://support.huaweicloud.com/usermanual-wisestudio/zh-cn_image_0000002187067249.png)
   
   
8. 继续单击"添加步骤"，在右侧"添加步骤"页面搜索"上传文件到OBS"，鼠标移至该插件单击"添加"将其添加到构建步骤中。
9. 单击"上传文件到OBS"步骤，在"上传文件到OBS"页面，参照[表4]配置相关参数，配置完成后单击"保存"，配置IaC自动部署包构建任务完成。
   
    表4"上传文件到OBS"（IaC自动部署包）步骤配置的参数说明 
   | 参数名称     | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   |:---|:---|
   | 步骤显示名称   | 构建步骤的名称，默认为"上传文件到OBS"，保持默认或自定义修改均可。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 授权用户     | 在下拉列表选择： - 当前用户：上传到当前租户的OBS桶。  - 其他用户：可以通过选择IAM账号的方式上传到指定租户的OBS桶。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | IAM账号    | "授权用户"选择"其他用户"时需配置此参数，配置步骤如下： 1. 单击"管理IAM账号"，进入"服务扩展点管理"页面。  2. 单击"新建服务扩展点"，选择"IAM账户"，弹出"新建服务扩展点"对话框，填写以下参数，补充租户下用户的AK、SK即可： - 连接名称：服务扩展点的名称。例如"OBS权限"。  - Access Key Id：访问密钥ID（AK），[获取访问密钥AK/SK](https://support.huaweicloud.com/iam_faq/iam_01_0618.html)。  - Secret Access Key：秘密访问密钥（SK），[获取访问密钥AK/SK](https://support.huaweicloud.com/iam_faq/iam_01_0618.html)。    3. 信息填写完成，单击"确定"。   |
   | 构建产物路径   | 路径为[7]的zip包的相对路径或输入\*模糊匹配（如"./DemoServiceB/\*.zip"）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | 桶名       | 用户自定义构建结果上传到的目标OBS桶名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | OBS存储目录  | 用户构建结果在OBS上的存储目录。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | OBS存储文件名 | 非必填项，构建结果在OBS上的存储文件名（不包含目录），留空时可上传多个文件，取构建产物文件名为OBS存储文件名；不为空时只能上传单个文件，如application.jar。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 是否上传文件夹  | 非必填项，可选择是否开启上传文件夹。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | OBS头域    | 非必填项，上传文件时加入一个或多个自定义的响应头，当用户下载此对象或查询此对象元数据时，加入的自定义响应头会在返回消息的头域中出现。如："键"填写成"x-frame-options"，"值"填写成"false"，即可禁止OBS中存放的网页被第三方网页嵌入。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
      
   
   
10. 返回[3]的"任务配置"页面，在"请选择需要调用的任务"下拉列表中选择已配置完成的IaC自动部署包构建任务，"仓库"下拉列表选择[创建代码仓库](https://support.huaweicloud.com/usermanual-wisestudio/appstage_04_0710.html)中已创建的仓库，其他参数无需配置，保持默认即可。
11. 单击"确定"，添加IaC自动部署包构建任务完成。
12. 单击"任务编排"页面右上角"保存"，保存流水线的任务配置。
 
#### 执行流水线
1. 在当前版本的流水线列表中已关联的流水线所在行的"操作"列，单击"执行"。 
   如果是已发布版本，则无法执行流水线。
   
   
2. 在"执行构建"对话框，单击"确定"，流水线开始构建版本的发布软件包。 
   - 在流水线进行中，单击"操作"列"终止"可停止构建。
   
   - 一个版本可多次重复执行发布构建，但以最后一次的构建结果为准。
   
   
   
   
 
#### 更多操作
您还可以执行如下[表5]所示操作。
 表5更多操作 
| 操作        | 步骤                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|
| 查看流水线运行历史 | 在流水线列表中单击流水线名称，进入"流水线运行历史"页面： - 选择"流水线详情"页签，查看流水线编排的详情。  - 选择"执行历史"页面，选择时间段，可查看该时间段的流水线执行详情信息。   如果是已发布版本，则无法查看流水线运行历史。 |
| 解除关联流水线   | 1. 在流水线列表"操作"列，单击"解除关联"。  2. 单击"确认"，解除此流水线与当前版本的关联。   如果是已发布版本，则无法解除关联流水线。                                                                                                                |
   
