文档首页/ 应用平台 AppStage/ 开发中心用户指南/ 在AppStage开发中心通过流水线编译构建版本
更新时间:2024-09-03 GMT+08:00
分享

在AppStage开发中心通过流水线编译构建版本

流水线管理是开发中心结合流水线CodeArts Pipeline编译构建CodeArts Build服务的能力,提供可视化、可编排的CI/CD持续交付软件生产线,帮助企业快速转型,实现DevOps持续交付高效自动化,缩短应用TTM(Time to Market)交付周期,提升研发效率。

流水线服务本质上是一个可视化的自动化任务调度平台,需要配合软件开发生产线中编译构建、代码检查、测试计划、部署等服务的自动化任务使用。根据用户需要的场景,如开发测试环境应用部署、生产环境应用部署等,对这些自动化任务进行自定义编排,一次配置后就可以一键自动化触发调度执行,避免频繁低效的手工操作。

关于流水线的详细介绍文档请参考流水线CodeArts Pipeline编译构建 CodeArts Build

前提条件

创建并关联流水线

  1. 在开发中心左上角单击,在菜单列表中选择“全部菜单 > 团队空间”,进入默认团队空间(在页面顶部单击团队名右侧可切换我的其他团队,单击服务名右侧可切换团队关联的其他服务)。
  2. 在开发中心左侧导航栏,选择“流水线管理”。
  3. 在“流水线管理”页面,选择服务版本,单击“关联流水线”,在“关联流水线”面板,根据界面提示单击“立即前往”,可以进入CodeArts页面创建流水线,如图1所示。

    图1 新建流水线

  4. 在“流水线管理”页面,单击“创建流水线”。

    进入“新建流水线 > 基本信息”页面,当前服务即为所属项目,填写流水线名称,根据需要选择流水线源,并配置相关参数,流水线源及相关参数说明如表1所示。

    表1 参数说明

    流水线源

    参数

    说明

    Repo

    提供企业代码托管的全方位服务,为软件开发者提供基于Git的在线代码托管服务。

    代码库名称

    选择可用的源码仓库。

    默认分支

    手工或定时执行流水线时默认使用的分支。

    CodeArts Repo https授权

    配置授权扩展点以提升代码库操作权限,主要用于微服务变更流水线和部分仓库操作插件。

    别名

    输入别名,则会生成该仓库对应的相关系统参数(可在参数设置页面查看),否则不会生成。

    用户选择Repo流水线源时,如果设置了仓库别名,则会在系统预定义参数页面生成该仓库对应的系统参数,否则不生成。

    描述

    对流水线的描述。

    码云

    连接到码云账号之后可以获取该账号下的仓库、分支等信息。

    服务扩展点

    选择可用码云服务扩展点,或单击“新建服务扩展点”新建码云Git服务扩展点

    代码库名称

    选择可用的源码仓库。

    默认分支

    手工或定时执行流水线时默认使用的分支。

    别名

    输入别名,则会生成该仓库对应的相关系统参数(可在参数设置页面查看),否则不会生成。

    用户选择码云流水线源时,如果设置了仓库别名,则会在系统预定义参数页面生成该仓库对应的系统参数,否则不生成。

    描述

    对流水线的描述。

    GitHub

    连接到Github账号后可以获取该账号下的仓库、分支等信息。

    服务扩展点

    选择可用GitHub服务扩展点,或单击“新建服务扩展点”新建GitHub服务扩展点

    代码库名称

    选择可用的源码仓库。

    默认分支

    手工或定时执行流水线时默认使用的分支。

    描述

    对流水线的描述。

    GitCode

    连接到Gitcode账号后可以获取该账号下的仓库、分支等信息。

    服务扩展点

    选择可用Gitcode服务扩展点,或单击“新建服务扩展点”新建GitCode服务扩展点

    代码库名称

    选择可用的源码仓库。

    默认分支

    手工或定时执行流水线时默认使用的分支。

    描述

    对流水线的描述。

    通用Git

    通过通用Git服务扩展点可以访问扩展点中配置的仓库。

    服务扩展点

    选择已有通用git服务扩展点,或单击“新建服务扩展点”新建通用Git服务扩展点

    代码库地址

    选择可用的源码仓库。

    默认分支

    手工或定时执行流水线时默认使用的分支。

    描述

    对流水线的描述。

    • 其中,GitCode流水线源当前仅支持“北京四”和“广州”局点白名单用户。如果您需要开通此功能,请新建工单或拨打客服热线进行咨询。
    • 如果用户新建的流水线任务不需要关联代码仓,流水线源也可以选择“暂不选择”。

  5. 配置基本信息,单击“下一步”。

    进入“新建流水线 > 模板选择”页面,请根据需要选择对应模板,在模板基础上快速新建任务;也可以选择“空模板”,即不使用模板,直接新建。如图2所示。

    图2 选择模板

  6. 选择模板后,单击“确定”,进入“任务编排”页面,根据需要配置流水线,然后单击“保存”。
  7. 在“关联流水线”页面,勾选已创建和配置完成的流水线。
  8. 单击“确定”。所选流水线与当前服务版本绑定。

配置流水线(以添加代码检查任务为例)

  1. 在流水线的“任务编排”页面,单击,新建阶段,如图3所示。

    图3 新建阶段

  2. 单击,在“编辑阶段”页面,修改“阶段名称”为“代码检查”,并将“总是运行”设置为“否”(选择“是”,表示流水线执行时,该阶段下的任务默认选中必须执行且不可取消;选择“否”,表示流水线执行时,该阶段下的任务默认选中但可以取消。),然后单击“确定”。
  3. 在流水线的“代码检查”阶段,单击“新建任务”。
  4. 在“新建任务”页面的右侧区域,选择“代码检查”页签,单击“CodeArtsCheck代码检查”后的“添加”,将此插件添加到任务中,如图4所示。

    图4 代码检查

  5. 在“任务配置”页面右侧区域“请选择需要调用的任务”处单击“点击创建”,如图5所示,进入“新建任务”页面,参照表2配置参数信息(此处以创建Repo源码源检查任务为例),配置完成后单击“新建任务”。

    图5 创建代码检查任务
    表2 参数说明

    参数项

    描述

    归属项目

    任务所属项目。默认填写,无需设置。

    代码源

    选择Repo,从代码托管拉取代码进行检查。

    任务名称

    代码检查任务名称,可自定义。

    仓库

    选择需要检查的代码仓库。

    分支

    填写需要检查的仓库分支名称。

    检查语言

    选择需要检查的代码语言。

  6. 返回5的“任务配置”页面,在“请选择需要调用的任务”下拉列表中选择已配置完成的代码检查任务,“仓库”下拉列表选择创建代码仓库中已创建的仓库,其他参数无需配置,保持默认即可。
  7. 单击“确定”,添加代码检查任务完成。
  8. 单击“任务编排”页面右上角“保存”,保存流水线的任务配置。

配置流水线(以添加业务包构建任务为例)

  1. 在流水线的“任务编排”页面,单击,新建阶段。
  2. 单击,在“编辑阶段”页面,修改“阶段名称”为“构建阶段”,并将“总是运行”设置为“是”(选择“是”,表示流水线执行时,该阶段下的任务默认选中必须执行且不可取消;选择“否”,表示流水线执行时,该阶段下的任务默认选中但可以取消。),然后单击“确定”。
  3. 在流水线的“构建阶段”,单击“新建任务”。
  4. 在“新建任务”页面的右侧区域,选择“构建”页签,单击“Build构建”后的“添加”,将此插件添加到任务中。
  5. 在“任务配置”页面右侧区域“请选择需要调用的任务”处单击“点击创建”,如图6所示。

    图6 Build构建任务配置

  6. 在“新建构建任务”页面的“基本信息”页面,自定义任务名称(以“adadss-build”为例),归属项目默认为当前服务,源码源选择“Repo”,选择对应的代码仓库(以创建好的“adadss”仓库为例)以及分支“master”,单击“下一步”。
  7. 在“构建模板”页面,选择“空白构建模板”模板,然后单击“下一步”,进入“构建步骤”的“图形化”页签,该页面的“构建环境配置”和“代码下线配置”无需配置,保持默认配置即可。
  8. 配置构建步骤“Maven构建”。

    1. 返回“构建步骤”页签,单击“点击添加构建步骤”,在右侧“添加步骤”页面搜索“Maven构建”,鼠标移至插件卡片并单击“添加”,如图7所示。
      图7 Maven构建
    2. 执行maven构建命令将业务代码打包,不同项目有所不同。

      参考示例:mvn -Dassembly clean compile package -Dmaven.test.skip=true -U -T4

      若某些jar包依赖不到,可将仓库地址添加在setting配置的公有依赖仓库。

  9. 配置镜像构建。

    1. 登录华为云容器镜像服务控制台,在左侧导航栏选择“我的镜像”,单击右上角“页面上传”,在“页面上传”对话框,创建组织(必须使用华为云账号),单击“选择镜像文件”,选择已经准备好的基础镜像tar包,单击“开始上传”,待任务进度显示“上传完成”,表示镜像文件上传成功。

      基础镜像tar包仅需上传一次,后续可直接从镜像文件列表中选取。

    2. 在镜像仓库找到9.a上传的基础镜像,参照图8复制镜像地址。
      图8 复制镜像地址
    3. 9.b复制的镜像地址粘贴到Dockerfile文件中第一行FROM命令后,如图9所示。
      图9 将镜像地址粘贴到Dockerfile文件中
    4. 返回华为云容器镜像服务控制台镜像列表中单击镜像tar包名称,进入镜像详情页面,选择“Pull/Push指南”页签,单击“操作步骤”中的“生成登录指令”。
    5. 在“登录指令”对话框中的“临时登录指令”框的指令末尾处单击,复制临时登录指令,如图10所示。
      图10 复制临时登录指令
    6. 返回“构建步骤”页面,单击“添加步骤”,在右侧“添加步骤”页面搜索“执行Docker命令”,鼠标移至该插件卡片并单击“添加”。
    7. 单击“执行Docker命令”步骤,在右侧“命令”参数下单击“添加”添加docker命令,在“命令”下拉框中选择“login”,参数框中输入9.e获取的临时登录指令中login后的部分,例如“-u cn-north-7@K5X8GVN5B4H4B8KB9SDO -p 1dd00acee886bd05886cded19f5af1cb1e96326e4354fc0f3f493f12a3586518 swr.cn-north-7.myhuaweicloud.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命令

  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即可:
    3. 信息填写完成,单击“确定”。

    构建产物路径

    路径为10的zip包的相对路径或输入*模糊匹配(如“./DemoServiceB/*.zip”)

    桶名

    用户自定义构建结果上传到的目标OBS桶名。

    OBS存储目录

    用户自定义构建结果在OBS上的存储目录

    OBS存储文件名

    非必填项,构建结果在OBS上的存储文件名(不包含目录),留空时可上传多个文件,取构建产物文件名为OBS存储文件名;不为空时只能上传单个文件,如 application.jar。

    是否上传文件夹

    非必填项,可选择是否开启上传文件夹。

    OBS头域

    非必填项,上传文件时加入一个或多个自定义的响应头,当用户下载此对象或查询此对象元数据时,加入的自定义响应头会在返回消息的头域中出现。如:“键”填写成“x-frame-options”,“值”填写成“false”,即可禁止OBS中存放的网页被第三方网页嵌入。

  12. 返回5的“任务配置”页面,在“请选择需要调用的任务”下拉列表中选择已配置完成的构建任务,“仓库”下拉列表选择创建代码仓库中已创建的仓库,其他参数无需配置,保持默认即可。
  13. 单击“确定”,添加业务包构建任务完成。
  14. 单击“任务编排”页面右上角“保存”,保存流水线的任务配置。

配置流水线(以添加IaC自动部署包构建任务为例)

  1. 在流水线的“任务编排”页面的“构建阶段”,单击,如图12所示。

    图12 并行任务

  2. 在“新建任务”页面的右侧区域,选择“构建”页签,单击“Build构建”后的“添加”,将此插件添加到任务中。
  3. 在“任务配置”页面右侧区域,设置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 压缩zip包

    图13中“build.sh”、“app_define.json”、“iacspec.xml”、“pom.xml”这些文件为自定义的脚本文件。

  8. 继续单击“添加步骤”,在右侧“添加步骤”页面搜索“上传文件到OBS”,鼠标移至该插件单击“添加”将其添加到构建步骤中。
  9. 单击“上传文件到OBS”步骤,在“上传文件到OBS”页面,参照表4配置相关参数,配置完成后单击“新建”,配置IaC自动部署包构建任务完成。

    表4 “上传文件到OBS”(IaC自动部署包)步骤配置的参数说明

    参数名称

    参数说明

    步骤显示名称

    构建步骤的名称,默认为“上传文件到OBS”,保持默认或自定义修改均可。

    授权用户

    在下拉列表选择:

    • 当前用户:上传到当前租户的OBS桶。
    • 其他用户:可以通过选择IAM账号的方式上传到指定租户的OBS桶。

    IAM账号

    “授权用户”选择“其他用户”时需配置此参数,配置步骤如下:

    1. 单击“管理IAM账号”,进入“服务扩展点管理”页面。
    2. 单击“新建服务扩展点”,选择“IAM账户”,弹出“新建服务扩展点”对话框,填写以下参数,补充租户下用户的AK、SK即可:
    3. 信息填写完成,单击“确定”。

    构建产物路径

    路径为7的zip包的相对路径或输入*模糊匹配(如“./DemoServiceB/*.zip”)

    桶名

    用户自定义构建结果上传到的目标OBS桶名。

    OBS存储目录

    用户构建结果在OBS上的存储目录。

    OBS存储文件名

    非必填项,构建结果在OBS上的存储文件名(不包含目录),留空时可上传多个文件,取构建产物文件名为OBS存储文件名;不为空时只能上传单个文件,如 application.jar。

    是否上传文件夹

    非必填项,可选择是否开启上传文件夹。

    OBS头域

    非必填项,上传文件时加入一个或多个自定义的响应头,当用户下载此对象或查询此对象元数据时,加入的自定义响应头会在返回消息的头域中出现。如:“键”填写成“x-frame-options”,“值”填写成“false”,即可禁止OBS中存放的网页被第三方网页嵌入。

  10. 返回3的“任务配置”页面,在“请选择需要调用的任务”下拉列表中选择已配置完成的IaC自动部署包构建任务,“仓库”下拉列表选择创建代码仓库中已创建的仓库,其他参数无需配置,保持默认即可。
  11. 单击“确定”,添加IaC自动部署包构建任务完成。
  12. 单击“任务编排”页面右上角“保存”,保存流水线的任务配置。

执行流水线

  1. 在当前服务版本的流水线列表中已关联的流水线所在行的“操作”列,单击“执行”。
  2. 在“执行构建”对话框,单击“确定”,流水线开始构建版本的发布软件包。

    • 在流水线进行中,单击“操作”列“终止”可停止构建。
    • 一个版本可多次重复执行发布构建,但以最后一次的构建结果为准。

更多操作

您还可以执行如下表5所示操作。

表5 更多操作

操作

步骤

查看流水线运行历史

在流水线列表中单击流水线名称,进入“流水线运行历史”页面:

  • 选择“流水线详情”页签,查看流水线编排的详情。
  • 选择“执行历史”页面,选择时间段,可查看该时间段的流水线执行详情信息。

解除关联流水线

  1. 在流水线列表“操作”列,单击“解除关联”。
  2. 单击“确认”,解除此流水线与当前版本的关联。

相关文档