
# 新建代码化构建任务
代码化构建是指通过YAML文件配置构建脚本，将构建过程需要用到的构建环境、构建参数、构建命令、构建工具等信息通过YAML语法编写成"build.yml"文件，并且将"build.yml"文件随着被构建的代码一起存储到代码仓库，执行构建任务时，系统会以"build.yml"文件作为构建脚本执行构建任务。
#### 约束与限制
代码化构建仅支持使用CodeArts Repo代码仓。
#### 新建构建任务前准备工作
- 已具备CodeArts Repo服务的操作权限，具体操作可参考[授权使用CodeArts Repo服务](https://support.huaweicloud.com/usermanual-codeartsrepo/codeartsrepo_03_0132.html)。
- 参考华为云码道(CodeArts)的"用户指南 \> 华为云码道（CodeArts）使用前准备 \> 新建CodeArts项目"，[新建CodeArts项目](https://support.huaweicloud.com/usermanual-devcloud/codearts_01_0027.html)。
  如果已有项目，无需执行此步骤。
  
 
 #### 创建代码化构建使用的YAML文件
1. 通过项目入口方式[访问CodeArts Build服务首页](https://support.huaweicloud.com/usermanual-codeci/codeci_ug_2000.html#codeci_ug_2000__section743813333914)。
2. 选择导航栏"代码 \> 代码托管"，进入代码托管页面。参考[新建自定义代码仓库](https://support.huaweicloud.com/usermanual-codeartsrepo/codeartsrepo_03_0024.html)创建代码仓。
3. 单击代码仓名称，在代码仓下依次单击"新建 \> 新建目录"，目录命名为".cloudbuild"。
4. 在".cloudbuild"目录下依次单击"新建 \> 新建文件"，文件命名为"build.yml"，新建后文件目录如[图1]所示。
   图1文件目录   
   ![](https://support.huaweicloud.com/usermanual-codeci/zh-cn_image_0000001983852393.png)
   若YAML文件不存放在".cloudbuild"目录，可通过"CB_BUILD_YAML_PATH"参数指定YAML文件在代码仓中的路径。参数配置可参考[添加自定义参数的配置指导](https://support.huaweicloud.com/usermanual-codeci/codeci_ug_0037.html#codeci_ug_0037__section1242894271812)。
   
5. 单击![](https://support.huaweicloud.com/usermanual-codeci/zh-cn_image_0000001984012241.png)，参考[编写单任务build.yml文件](https://support.huaweicloud.com/usermanual-codeci/codeci_ug_1053.html)或[编写多任务build.yml文件](https://support.huaweicloud.com/usermanual-codeci/codeci_ug_1057.html)的代码示例，编写"build.yml"文件。
 
 #### 配置构建任务基本信息
1. 选择导航栏"持续交付 \> 编译构建"，进入编译构建服务页面。
2. 单击"新建任务"，进入配置"基本信息"页面，参考[表1]填写构建任务基本信息。
    表1基本信息配置说明 
   | **参数** | **说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   |:---|:---|
   | 名称     | 创建的编译构建任务名称，可自定义。 - 支持中英文，数字，下划线"_"和连字符"-"。  - 字符长度范围为1\~115。  - 同项目下，不支持任务名重复。   |
   | 所属项目   | 创建的编译构建任务所属项目。 - 当以项目入口方式访问编译构建服务时默认填写，无需手动填写。  - 当以服务入口访问时需根据实际情况选择[新建构建任务前准备工作](https://support.huaweicloud.com/usermanual-codeci/codeci_ug_0000.html#codeci_ug_0000__section1767032814567)中创建的项目。                                                                      |
   | 任务分组   | 选择构建任务所属的分组。分组详情可参考[新建分组](https://support.huaweicloud.com/usermanual-codeci/codeci_ug_0070.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 代码源    | 选择Repo：表示从代码托管拉取代码进行构建。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 代码仓    | 选择实际需要编译的代码仓。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 默认分支   | 选择仓库默认分支。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | 描述     | 可选参数。根据实际场景对编译构建任务的描述。字符长度范围0\~512。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
      
   
3. 单击"下一步"，进入"构建模板"页面。
 
#### 选择构建模板
1. 在构建模板页面保持默认选择即可。 使用代码化构建时，选择任何构建模板都不影响使用YAML构建。
   
2. 单击"确定"，进入"构建步骤"页面。
 
#### 配置构建步骤
在"构建步骤"页面左上角单击"代码化"页签，系统会从[配置构建任务基本信息]中配置的代码仓库及分支中，自动读取YAML文件。
![](https://support.huaweicloud.com/usermanual-codeci/zh-cn_image_0000001951646070.png)
您可在此处，参考[配置构建任务](https://support.huaweicloud.com/usermanual-codeci/codeci_ug_0059.html)下"构建任务基础配置"和"配置构建步骤"中的"代码化构建"部分的代码示例，对YAML文件进行修改。如果在此处修改了YAML文件，那么执行构建任务后，修改后的内容会覆盖[创建代码化构建使用的YAML文件]中的原YAML文件。
配置完成后，单击"保存"，即可完成构建任务的创建。完成后可在编译构建任务列表页查看到该任务。
#### 相关文档
- 关于代码构建的使用示例，可参考[CodeArts Build最佳实践](https://support.huaweicloud.com/bestpractice-codeci/codeci_practice_1022.html)代码化构建的案例。
- 后续操作可参考[配置构建任务](https://support.huaweicloud.com/usermanual-codeci/codeci_ug_0059.html)。
- 关于构建任务的管理可参考[管理构建任务](https://support.huaweicloud.com/usermanual-codeci/devcloud_01_0032.html)。
 
