步骤四:构建并归档软件包
编译构建为开发者提供配置简单的混合语言构建平台,支持任务一键创建、配置和执行,实现获取代码、构建、打包等活动自动化。发布提供软件仓库、软件发布、发布包下载、发布包元数据管理等功能,实现软件包版本管理。通过编译构建任务中配置的归档路径,可将构建好的软件包归档在发布仓库中。
本示例中采用的构建工具为CMake+gcc。
DevCloud中内置了编译构建所需的基础环境镜像,包含多个版本的CMake和gcc工具,但这些镜像只能安装简单的构建工具和常用的软件包,不足以支撑专业性较强的C++项目,因此本示例中介绍一种解决方法:首先将工程所需的依赖包构建成环境镜像,上传到容器镜像服务SWR中;然后在构建软件包时拉取环境镜像并使用。
本节通过以下五步介绍如何使用编译构建服务构建环境镜像、将代码编译打包成软件包、并将软件包归档到软件发布库中。
第一步:上传环境镜像到SWR
如果本地有Linux机器并已经安装了Docker工具,可以在本地构建环境镜像并上传。在容器镜像服务中,单击“客户端上传”,会显示上传指导说明。
如果本地没有Linux机器或Docker工具,也可以按照本节的操作,通过DevCloud生成环境镜像。
- 创建组织。
组织用于隔离镜像仓库,上传镜像前需要先创建组织。
- 准备镜像文件。
- 在本地准备如下Dockerfile文件,用于生成“环境镜像”。
FROM ubuntu:16.04 RUN apt-get update RUN apt-get install git -y RUN apt-get install make -y RUN apt-get install cmake -y RUN apt-get install gcc -y RUN apt-get install g++ -y RUN apt-get install libmad0-dev -y RUN apt-get install libid3tag0-dev -y RUN apt-get install libsndfile1-dev -y RUN apt-get install libgd-dev -y RUN apt-get install libboost-filesystem-dev -y RUN apt-get install libboost-program-options-dev -y RUN apt-get install libboost-regex-dev -y
- 进入“普通新建”,创建代码仓库“audio-dockerfile”,并将Dockerfile文件上传到此代码仓库中。
上传文件操作请参考将本地Git库上传到代码托管的代码仓库。
页面,单击
- 在本地准备如下Dockerfile文件,用于生成“环境镜像”。
- 构建环境镜像。
- 单击页面上方导航栏
- 单击“新建任务”,配置编译构建任务信息。
步骤
填写/选择建议
基本信息
- 任务名称:output-env-CI。
- 构建环境主机类型:x86服务器。
选择代码源
- 源码源:DevCloud。
- 源码仓库:选择“audio-dockerfile”。
- 分支:master。
选择构建模板
选择“不使用模板,直接创建”。
- 完成配置,单击“确定”,页面自动跳转至构建步骤页面。
- 添加步骤“制作镜像并推送到SWR仓库”。
输入组织“audiowaveform”,设置镜像名称、镜像标签。本示例中的配置分别为“ubuntu”、“16.04”。
- 单击“新建”,编译构建完成任务的创建。页面自动跳转至任务详情页。
- 单击“执行”,启动构建任务。
任务执行耗时约6~8分钟。当出现如下页面时,表示任务执行成功完成。
- 单击页面上方导航栏
- 查看环境镜像。
第二步:新建编译构建任务
由于本示例中采用自有的环境镜像进行构建,因此在创建编译构建任务时将不选择系统模板,而是根据需要选择DevCloud内置的构建步骤。
- 返回“编译构建”页面,单击“新建任务”,配置编译构建任务信息。
步骤
填写/选择建议
基本信息
- 任务名称:audiowaveform-CI。
- 构建环境主机类型:x86服务器。
选择代码源
- 源码源:DevCloud。
- 源码仓库:选择在步骤二:管理项目代码中创建的代码仓库“audiowaveform”。
- 分支:master。
选择构建模板
选择“不使用模板,直接创建任务”。
- 完成配置,单击“确定”,页面自动跳转至构建步骤页面。
- 添加并配置构建步骤:
- 使用SWR公共镜像:输入在上传环境镜像到SWR-步骤13获取到的镜像地址,并输入以下命令。
1 2 3
mkdir build && chmod 777 build && cd build cmake -D ENABLE_TESTS=0 -D BUILD_STATIC=1 .. make
- 执行shell命令:输入以下命令,将代码仓库中的运行脚本和生成的可执行文件统一压缩。
1 2 3
cp startup.sh build/ cd build tar zcvf audiowaveform.tar.gz audiowaveform startup.sh
- 上传软件包到软件发布库:输入构建包路径、发布版本号及包名,本示例中的配置分别为“build/audiowaveform.tar.gz”、“1.0”、“audiowaveform”。
- 使用SWR公共镜像:输入在上传环境镜像到SWR-步骤13获取到的镜像地址,并输入以下命令。
- 单击“新建”,完成编译构建任务的创建。页面自动跳转至任务详情页。
第三步:执行编译构建任务
在编译构建任务详情页,单击“执行”,启动构建任务。
任务执行耗时约1分钟,当出现如下页面时,表示任务执行成功完成。
若执行失败,请查看日志信息排查问题,或通过编译构建-常见问题查找解决方法。
第四步:检查发布件
编译构建任务默认将软件包归档在软件发布库中,归档路径通常分为两层:
- 路径第一层为与编译构建任务同名的文件夹。
- 路径第二层为与第二步:新建编译构建任务中设置的发布版本号同名的文件夹,本示例中的路径文件夹为“1.0”。
- 单击页面上方导航栏 ,进入软件发布库。
- 依次单击文件夹“audiowaveform > 1.0”,可以看到生成的软件包“audiowaveform.tar.gz”。
至此,您已经完成了软件包的构建与归档操作。
