功能说明
构建策略配置文件manifest.yml支持模板变量,这些变量将在构建时替换成真实值,如:
gpp:
files:
# rootfs镜像文件固定为rootfs_BMC.img
- file: ${work_out}/rootfs_BMC.img
# rootfs镜像压缩文件固定为rootfs_BMC.img
- file: ${work_out}/rootfs_BMC.tar.gz
# rootfs_BMC.img的cms签名文件
- file: ${work_out}/rootfs_BMC.img.cms
其中${work_out}就是一个模板变量,用于指定构建任务临时输出目录home/manifest/temp/build_openUBMC_debug_dev/output,因此,构建时会替换为:
# 构建gpp包所需配置。
# manufecture中的gpp/files会覆盖当前的配置
gpp:
files:
# rootfs镜像文件固定为rootfs_BMC.img
- file: home/manifest/temp/build_openUBMC_debug_dev/output/rootfs_BMC.img
# rootfs镜像压缩文件固定为rootfs_BMC.img
- file: home/manifest/temp/build_openUBMC_debug_dev/output/rootfs_BMC.tar.gz
# rootfs_BMC.img的cms签名文件
- file: home/manifest/temp/build_openUBMC_debug_dev/output/rootfs_BMC.img.cms
模板变量清单
当前支持的模板变量及说明:
| 变量名 | 说明 |
|---|---|
| code_root | build目录,展开为[manifest]/ |
| product | product目录,展开为[manifest]/build/product |
| manufacture | 生产配置目录,展开为[manifest]/build/manufacture |
| hpm_build_dir | hpm构建目录,展开为[manifest]/temp/build_[board_name][build_type][build_stage]/hpm_build_dir |
| board_path | 单板临时目录,构建时会下载或复制一些临时文件放在此处,展开为[manifest]/temp/board_[board_name] |
| ori_board_path | manifest.yml所在目录 |
| version | 版本号,会自动截断B版本号,如1.01.02.03.B004则version的版本号为1.01.02.03 |
| manufacture_version | 装备版本号,一般会在version的最后一段加1表示(耦数表示release版本号) |
| manufacture_code | 装备编码,对应publish构建时-z指定的参数,如05024ABC,跟manfiest.yml的manufacture配置相同 |
| tosupporte_code | 发布编码,对应publish构建时-sc指定的参数,默认为default,跟manifest.yml的tosupport配置相同 |
| board_name | 单板名称,如openUBMC |
| work_out | 构建时临时制品存储目录,展开为[manifest]/temp/build_[board_name][build_type][build_stage]/output |
| output_path | 最终制品存储目录,展开为[manifest]/output |
| sdk_path | 芯片SDK目录,展开为[manifest]/temp/build_[board_name][build_type][build_stage]/sdk |
| major_ver | 主版本号,对应1.01.02.03.B001中的1 |
| minor_ver | 次版本号,对应1.01.02.03.B001中的01 |
| release_ver | 发布版本号,对应1.01.02.03.B001中的02 |
| patch_ver | 补丁版本号,对应1.01.02.03.B001中的03 |
| build_ver | 构建号,对应对应1.01.02.03.B001中的B001 |
| show_version | 对应manfiest.yml的base/show_version |
注:
- [manifest] 对应manifest仓的路径
- [board_name] 是当前正在构建的单板名,如openUBMC
- [build_type] 指构建类型,对应bingo build的-bt参数,取值为release或debug
- [build_stage] 指构建阶段,对应bingo build的–stage参数,取值为dev、rc、stable
时间戳模板
manifest.yml支持时间戳模板,在构建时会按python的时间戳格式替换,系统启动构建时会记录一个时间戳,因此可以保证单次构建的所有时间戳格式化输出一致。
当前只有package_name以及files的源和目标文件名中使用,时间戳模板与python的时间格式化完全相同,支持的格式参考 datetime — 基本日期和时间类型 — Python 3.13.2 文档
如:
tosupporte:
default:
package_name: "toCommunity/toTest/${board_name}_%Y%m%d%H%M%S.zip"
build_type: release
files:
- file: "${output_path}/rootfs_${board_name}.hpm"
dst: ${board_name}_%Y%m%d%H%M%S.hpm
如果board_name为openUBMC,上述模板格式化后变为:
tosupporte:
default:
package_name: "toCommunity/toTest/openUBMC_20250310202122.zip"
build_type: release
files:
- file: "/home/manifest/output/rootfs_${board_name}.hpm"
dst: openUBMC_20250310202122.hpm