build镜像构建命令-build

该命令用于jenkins-file中执行各类镜像编译检查,来保证上传代码的合规性。

如果想在jenkins-file使用,则添加如下命令。

python3 main.py build

添加上述主命令之后,此命令的参数如下所示:

-c: build_code

该参数用于指定构建代码地址,此地址为jenkins中的具体地址,请按照示例并结合实际情况进行添加,该参数可以用于文件构建,openeuler_image构建及python包构建,具体示例如下:

-c /home/jenkins/agent/yocto-meta-openeuler

-target: target

该参数用于指定目标镜像来源,该参数可以用于文件构建,openeuler_image构建及python包构建,具体示例如下:

-target openeuler_image

-a: arch

该参数用于指定构建架构,如aarch64,x86,arm32等,该参数只能用于openeuler_image构建,具体示例如下:

-a aarch64

-t: toolchain

该参数用于指定构建工具链,每个不同的架构有对应的工具链,该参数只能用于openeuler_image构建,具体示例如下:

-t /usr1/openeuler/gcc/openeuler_gcc_arm64le

-p: platform

该参数用于指定单板名称,该参数只能用于openeuler_image构建,具体示例如下:

-p qemu-aarch64

-i: image

该参数用于指定镜像名称,该参数只能用于openeuler_image构建,具体示例如下:

-p openeuler-image

-i: img_cmds

该参数用于添加构建镜像内命令,当镜像构建完成之后可以进行执行验证,暂无具体示例,依个人情况而定,该参数只能用于openeuler_image构建。

-f: features

该参数用于指定构建特性,如x11,debug,musl等特性,无具体示例,按个人需求添加,该参数只能用于openeuler_image构建。

-dt: datetime

该参数用于确定版本时间戳,该参数可以用于文件构建,openeuler_image构建及python包构建,具体示例如下:

-dt datetime

-d: directory

该参数用于指定构建生成产物的存放地址,默认名称为build,该参数只能用于openeuler_image构建,具体示例如下:

-d qemu-aarch64

-s_in: sstate_cache_in

该参数用于指定缓存的构建软件包地址,在这里简要介绍一下sstate-cache,在yocto中,sstate-cache是用于加速构建过程的一种机制,它可以缓存已经构建过的软件包,以便在后续的构建过程中可以直接使用这些缓存,而不是重新编译这些软件包。具体来说,sstate-cache会将已经构建过的软件包的二进制文件、头文件、库文件打包存储在一个目录中。当需要重新构建某个软件包时,yocto会首先检查sstate-cache中是否已经存在该软件包的的缓存,如果存在,那直接使用缓存中的文件,而不需要重新编译。这种机制可以大大加快构建过程的速度,特别是在多次构建相同软件包的情况下。同时,sstate-cache还可以跨不同的构建机器共享,从而进一步提高构建效率。sstate-cache的指定有两种方式,一种是远程的web站点方式,一种是本地目录方式。该参数只能用于openeuler_image构建,使用方式如下:

指定本地目录地址:

-s_in "/home/jenkins/ccache/openeuler_embedded/${giteeTargetBranch}/sstate-cache/qemu-aarch64"

-s_out: sstate_cache_out

该参数用于指定构建完成的软件包进行缓存的地址,默认一般不进行添加,如有需要请按需求使用,该参数只能用于openeuler_image构建,具体示例如下:

-s_out "/home/jenkins/ccache/openeuler_embedded/${giteeTargetBranch}/sstate-cache/qemu-aarch64"

上述参数设置完毕后,一般会在命令结尾指定log日志存放地址,具体示例如下:

> ${logDir}/${randomStr}.log

其中logDir为jenkins-file中设置的指定值,randomStr为对应方法生成的uuid。