通过流水线参数串联编译构建服务和部署服务
方案概述
使用编译构建生成软件包并通过部署服务部署时,手动配置获取软件包容易导致软件包不一致,且页面跳转多操作繁琐。通过流水线参数串联编译构建服务和部署服务,将参数传递给构建任务和部署任务,实现任务间数据流动的统一,只需要配置好流水线参数,即可完成构建、部署任务的数据拉通。
操作流程
本文以版本号参数为例,介绍如何将流水线参数传递给编译构建任务和部署应用,基本操作流程如下:
流程 |
说明 |
---|---|
新编译构建任务 |
新建编译构建任务,新增版本号参数,并在构建步骤引用该参数。 |
新建部署应用 |
新建部署任务,新增软件包参数,并在部署步骤引用该参数。 |
新建并执行流水线 |
新建流水线,新增版本号参数,并在流水线上添加编译构建任务及部署应用。
|
查看编译构建和部署结果 |
分别查看编译构建结果和部署结果。
|
准备工作
- 新建项目(选择“Scrum”模板,命名为“Project01”)。
- 新建代码仓库(选择“Java Maven Demo”模板,命名为“Repo01”)。
- 准备一台具有弹性IP的主机,可以使用已有主机,也可以购买华为云弹性云服务器。
步骤1:新建编译构建任务
- 登录华为云控制台页面。
- 单击页面左上角,在服务列表中选择“开发与运维 > 流水线 CodeArts Pipeline”。
- 单击“立即使用”,进入流水线服务首页。
- 单击顶部导航栏“首页”,在首页搜索准备工作中已创建的项目,单击项目名称,进入项目。
- 在左侧导航栏选择“持续交付 > 编译构建”,进入编译构建页面。
- 单击“新建任务”,填写基本信息。
表2 构建任务基本信息 参数项
说明
名称
构建任务名称,输入“BuildTask01”。
所属项目
构建任务所在的项目,不可更改。
代码源
构建任务关联的代码源类型,选择“Repo”。
代码仓
选择准备工作中已创建的代码仓“Repo01”。
默认分支
默认使用的分支,选择“master”。
- 单击“下一步”,选择Maven系统模板,单击“确定”。
- 在“参数设置”页面,新建releaseversion参数并打开运行时设置。
图1 新建构建参数
- 在“构建步骤”页面,单击“上传软件包到软件发布库”。发布版本号配置为参数引用形式“${releaseversion}”,引用releaseversion参数,其他参数保持默认。
图2 配置构建步骤
- 单击“保存”,完成构建任务的创建。
步骤2:新建部署应用
- 在左侧导航栏选择“设置 > 通用设置 > 基础资源管理”,新建主机集群,并将已购买的主机加入集群。
- 在左侧导航栏选择“持续交付 > 部署”,进入部署页面。
- 单击“新建应用”,填写任务名称“DeployTask01”,单击“下一步”,选择“空白模板”,单击“确定”。
- 在“参数设置”页面,新建package_url参数并打开运行时设置。
图3 新建部署参数
- 在“环境管理”页面,单击“新建环境”,命名为“Environment01”,并将集群中的主机导入环境。
- 在“部署步骤”页面,添加“选择部署来源”步骤,配置步骤信息。
图4 配置部署步骤
表3 配置部署步骤 参数项
说明
步骤显示名称
步骤名称。保持默认即可。
选择源类型
软件包来源。选择“制品仓库”
环境
部署环境。选择“Environment01”。
选择软件包
待部署的软件包。这里将获取构建任务上传至软件发布库的构建包,配置为参数引用形式“${package_url}”,引用package_url参数。
下载到主机的部署目录
软件包下载到目标主机的路径。输入“/usr/local”。
控制选项
保持默认。
- 单击“保存”,完成部署应用的创建。
步骤3:新建并执行流水线
- 在左侧导航栏选择“持续交付 > 流水线”,进入流水线页面。
- 单击“新建流水线”,根据需要配置流水线信息。
- 基本信息:配置以下信息,单击“下一步”。
表4 流水线基本信息 配置项
配置建议
名称
流水线名称,输入“Pipeline01”。
代码源
流水线关联的代码源类型,选择“Repo”。
代码仓
选择准备工作中已创建的代码仓“Repo01”。
默认分支
默认使用的分支,选择“master”。
- 选择模板:选择“空模板”,单击“确定”。
- 基本信息:配置以下信息,单击“下一步”。
- 在“参数设置”页面,新建releaseversion参数,默认值设置为${TIMESTAMP},并打开运行时设置。
- 在“任务编排”页面,系统默认生成两个阶段(“代码源”和“阶段_1”),单击“新建阶段”新增一个阶段“阶段_2”。
图5 任务编排
- 添加编译构建任务
- 单击“阶段_1”的“新建任务”,弹出“新建任务”侧滑框。
- 单击“构建”分类,找到“Build构建”插件。
- 将鼠标移动到插件,单击“添加”,选择已创建的构建任务,选择构建任务关联的仓库,releaseversion参数配置为参数引用形式“${releaseversion}”,引用流水线的releaseversion参数。
图6 添加构建任务
- 添加部署应用
- 单击“阶段_2”的“新建任务”,弹出“新建任务”侧滑框。
- 在搜索框输入“部署”关键字或单击“部署”分类,找到“Deploy部署”插件。
- 将鼠标移动到插件,单击“添加”,选择已创建的部署应用,输入package_url路径,并关联上一步的构建任务。
图7 添加部署应用
package_url为软件包地址,即构建包在软件发布库的相对路径(由构建任务名称、发布版本号和构建包拼接而成),且在路径中引用流水线的releaseversion参数。
- 添加编译构建任务
- 任务编排完成后,单击“保存并执行”,开始执行流水线。
步骤4:查看编译构建和部署结果
流水线执行成功后,分别查看流水线参数在编译构建和部署任务之间传递的结果。
- 查看编译构建结果
- 在左侧导航栏选择“制品仓库 > 软件发布库”。
- 展开左侧项目导航树,查看构建成功后上传的软件包。
- 查看部署结果
- 单击右上角用户名。
- 单击“CodeArts控制台”。
- 单击左上角,找到弹性云服务器服务,单击并进入。
- 找到本次部署使用的弹性云服务器,单击“操作”列“远程登录”。
- 选择“其他方式 > 使用控制台提供的VNC方式登录”,单击“立即登录”。
- 输入购买弹性云服务器时配置的用户名和密码,回车。
- 输入如下命令,回车,进入新建部署应用时配置的部署目录“/usr/local”。
cd /usr/local
- 输入如下命令,回车,即可查看刚部署成功的软件包,说明参数正常传递部署应用成功获取到了软件包。
ls -al
图9 查看部署结果