持续交付搭配火山引擎 云服务器 和 制品仓库,可完成云上持续交付一站式体验。本文为您介绍如何使用持续交付一站式流水线对 Java 源码进行编译构建并自动化部署至 ECS 实例。
对于主机部署应用的场景,通过持续交付流水线,可实现源码编译构建,制品仓库打包归档,ECS 推送部署一站式体验,帮助您实现 CICD 流程的自动化与合规化。
本文以 Spring Boot Hello World 代码为例,使用 Maven 进行编译构建,将制品推送至制品仓库归档,并下载产物至 ECS 实例进行部署。
云服务器
制品仓库
说明
制品仓库当前处于公测状态,如需体验,请优先联系您的售前经理或解决方案经理。
持续交付
已开通火山引擎持续交付。
已创建工作区,详细操作请参见 创建工作区。
已创建代码源,详细操作请参见 创建代码源。本文接入 Spring Boot Hello World 示例代码源。
登录 持续交付控制台。
在左侧导航栏选择 工作区,在工作区页面单击目标工作区名称,进入当前工作区。
单击 创建流水线,弹出 选择流水线模板 对话框。
选择 Java - 编译构建 & 制品上传 - 应用部署,单击 确定,进入当前流水线的流程编排页面。
配置代码源。
在代码源&触发器区域,单击 添加 > 代码源。
在弹出的配置输入源页面,选择您的代码仓库类型、代码仓库和默认分支。配置完成后,单击 确定。
配置 Java 编译构建任务。
单击 Java 编译构建 卡片,弹出编辑任务面板。
配置代码源下载策略。本实践对 Java 源码进行编译构建,故选择 下载代码。
在面板中配置 Java 编译构建 步骤。
配置项 | 说明 |
---|---|
步骤名称 | 默认为 Java编译构建。本示例保持默认。 |
版本 | 根据实际选择 Java 版本。 |
编译命令 | 根据实际业务,编写编译命令。 |
失败时跳过 | 开启后当前步骤运行失败直接跳过。本示例不开启。 |
在面板中配置 制品上传 步骤。
配置项 | 说明 |
---|---|
步骤名称 | 默认为制品上传。本示例保持默认。 |
地域 | 选择制品仓库所在的地域。 |
实例 | 选择制品仓库的实例名称。 |
仓库地址 | 选择要上传的目标仓库。仅支持选择非只读策略的 Generic 制品格式仓库。 |
制品文件路径 | 填写制品上传后,存储在制品仓库中的目标路径。本示例为/ ,表示存储至根目录。 |
制品名称 | 自定义制品仓库中归档的文件名称,本示例为webapp-$(PIPELINERUN_ID).jar 。 |
是否上传单文件 | 本示例上传一个 .jar 包,故开启。 |
打包路径 | 填写 Java 编译构建产物的文件路径。本示例为/workspace/target/demo-0.0.1-SNAPSHOT.jar 。 |
失败时跳过 | 开启后当前步骤运行失败直接跳过。本示例不开启。 |
高级设置保持默认。
单击 确定,完成当前任务配置。
配置 ECS 部署任务。
删除模板中原本的 应用部署 阶段,在 Java 编译构建 后新增阶段,并添加 部署 > ECS 运维 任务。
按要求配置当前任务,表格中未提及的配置项保持默认。配置完成后,单击 确定。
配置项 | 说明 |
---|---|
上游任务 | 展示当前任务的上游串行任务名称。本示例为 Java 编译构建。 |
制品下载 | 支持选择上游 制品上传 步骤构建的制品,制品会被下载到您配置的文件路径。本示例配置的文件路径为/tmp/demo.jar 。 |
地域 | 选择 ECS 实例所在的地域。 |
ECS 实例 | 选择要进行部署的 ECS 实例,支持批量勾选。 注意 ECS 实例需要安装运维助手,否则会导致任务失败。 |
执行路径 | 填写命令执行路径,对于 Linux 实例,默认在/home 目录下。 |
执行用户 | 您可以指定以某个实例中存在的用户执行命令。建议避免使用 root 用户,以降低安全风险。 注意 请指定拥有执行命令权限的用户。 |
超时时间 | 设置命令在每个实例上执行的超时时间,执行超时后,将判断该任务在对应实例上执行失败。本示例为 5 分钟。 |
命令类型 | 选择要执行的命令类型,本示例使用 Shell。 |
命令内容 | 输入希望在 ECS 实例中运行的脚本。本示例脚本如下:
|
可选配置流水线的基本信息、缓存目录、通知提醒。本示例保持默认。
单击 保存,保存流水线当前配置。
在流水线列表页,选择刚才创建的目标流水线,单击操作列的运行图标。
在弹出的运行流水线对话框中,确认使用的代码源分支信息,可选填写运行说明。
单击 确定,流水线开始运行,系统跳转至当前流水线的详情页面。
在当前流水线的运行详情页面,查看各任务的运行结果。
选择 Java 编译构建任务,单击制品详情,可跳转至制品仓库控制台,查看上传归档的制品详情。
选择 ECS 运维任务,单击 批量任务查看 按钮,可跳转至云服务器控制台,查看 ECS 批量任务的执行情况。
登录至完成部署的 ECS 实例,执行如下命令,正常输出 Hello World!
代表应用运行正常。
curl http://localhost:8080/hello