使用Maven构建上传软件包和推送镜像到SWR(内置执行机/代码化构建)
应用场景
编译构建服务支持通过yaml文件配置构建脚本,用户可以将构建时需要配置的构建环境、构建参数、构建命令、构建步骤等操作,通过yaml语法编写成build.yml文件实现,并且将build.yml文件和被构建的代码一起存储到代码仓库。执行构建任务时,系统会以build.yml文件作为构建脚本执行构建任务,使构建过程可追溯、可还原,安全可信。本实践以使用Maven构建为例,为您演示上传软件包至软件发布库和推送镜像到SWR。
本实践需要依赖使用的其他服务如下:
约束限制
- 已在容器镜像服务中创建组织,组织名称为“codeci_gray”。
- 需已具备CodeArts Artifact服务的操作权限,具体操作可参考授权使用CodeArts Artifact服务。
- 需已具备CodeArts Repo服务的操作权限,具体操作可参考授权使用CodeArts Repo服务。
- 代码化构建仅支持使用CodeArts Repo中的代码。
操作流程
流程 |
说明 |
---|---|
为本实践新建项目。 |
|
为本实践新建Repo代码仓用于存储代码文件。 |
|
通过“build.yml”定义整个构建的流程。 |
|
通过修改Dockerfile文件实现自定义镜像。 |
|
新建本实践的编译构建任务。 |
|
查看并验证构建结果。 |
新建项目
- 使用华为云账号登录华为云控制台页面。
- 单击页面左上角,在服务列表中选择 。
- 单击“立即使用”,进入CodeArts服务首页。
- 在首页单击“新建项目”,选用“Scrum”项目模板。
- 项目名称填写“build-bestpractice”,其他保持默认即可。
- 单击“确定”后,进入到“build-bestpractice”项目下。
新建CodeArts Repo代码仓
- 在导航栏选择 。
- 单击“新建仓库”,选择“模板仓库 ”,单击“下一步”。
- 选择“Java Maven Demo”模板,单击“下一步”。
- 在新建代码仓页面,“代码仓库名称”命名为“maven_yml_build”,其他参数保持默认即可。
- 单击“确定”,进入代码仓详情页。
新建build.yml文件
- 在代码仓详情页,单击图1所示。 ,如
- 在新建目录页面,根据表2填写参数信息,单击“确定”。
- 单击2中新建的目录名称。
- 单击图2所示。 ,如
- 文件命名为“build.yml”,并将如下代码拷贝到文件中。
# This YAML is the default template and can be modified based on this --- version: 2.0 steps: BUILD: - maven: image: cloudbuild@maven3.5.3-jdk8-open # 可以自定义镜像地址 inputs: settings: public_repos: - https://mirrors.huawei.com/maven cache: true # 是否开启缓存 command: mvn package -Dmaven.test.failure.ignore=true -U -e -X -B - upload_artifact: inputs: path: "**/target/*.?ar" - build_image: inputs: organization: codeci_gray # 组织名称 image_name: maven_demo # 镜像名称 image_tag: 1.0 # 镜像版本 dockerfile_path: ./Dockerfile
- 单击“提交”。
新建Dockerfile文件
- 在根目录下,参考4新建名为“Dockerfile”的文件。文件中代码如下:
FROM swr.cn-north-5.myhuaweicloud.com/codeci/special_base_image:centos7-base-1.0.2 MAINTAINER <devcloud@demo.com> USER root RUN mkdir /demo COPY ./target/server-1.0.jar /demo/app.jar
其中server-1.0.jar为“pom.xml”文件中artifactId、packaging和version的参数值组合。
- 单击“提交”。
新建编译构建任务
- 在导航栏选择 。
- 单击“新建任务”,根据表3填写参数信息。
表3 基本信息配置 参数
说明
任务名称
自定义任务名称,例如:maven_yml_build。
代码源
选择“Repo”。
代码仓
选择新建CodeArts Repo代码仓中创建的代码仓库名称“Repo01”。
默认分支
保持默认“master”即可。
任务描述
对该构建任务的描述。
- 单击“下一步”,选择“空白构建模板”。单击“确定”,进入构建步骤配置页面。
- 单击“代码化”页签,可查看到导入的构建脚本,如图3所示。
- 单击页面右上角的“保存并执行”。
查看并验证构建结果
- 查看上传的软件包。
- 查看推送的镜像。
- 进入容器镜像服务SWR。
- 单击导航栏“我的镜像”,在组织中筛选新建build.yml文件时代码中填写的“组织名称”,如:codeci_gray。
- 在筛选结果中单击新建build.yml文件时代码中填写的“镜像名称”,如:maven_demo。