如何为不同操作系统版本构建GitLab CI C++项目并归档产物
实现多操作系统版本的独立构建与归档
直接用GitLab CI的并行矩阵作业就能搞定,既不用写重复的作业配置,还能自动区分不同OS的构建产物。修改后的配置如下:
executable: stage: build parallel: matrix: - OS_TAG: rhel7 OS_NAME: rhel7 - OS_TAG: rhel8 OS_NAME: rhel8 - OS_TAG: freebsd14 OS_NAME: freebsd14 tags: - C++ - Boost - $OS_TAG script: - gmake -C src -j11 # 若不同OS有特殊编译需求,比如FreeBSD下make命令差异,可加条件判断适配 # - if [ "$OS_TAG" = "freebsd14" ]; then gmake -C src -j11; else make -C src -j11; fi artifacts: name: "executable-$OS_NAME" paths: - src/executable
关键改动说明:
- parallel:matrix:定义三个构建变体,每个变体对应一个OS的标签和名称变量,GitLab会自动为每个变体启动独立作业。
- tags:在原有
C++、Boost标签基础上,通过$OS_TAG引入矩阵里的OS专属标签,确保作业只会跑在对应操作系统的Runner上。 - artifacts.name:用
executable-$OS_NAME作为产物归档名称,让每个OS的构建产物以executable-rhel7、executable-rhel8、executable-freebsd14的独立名字保存,避免互相覆盖。
内容的提问来源于stack exchange,提问作者Mikhail T.
相关产品推荐
相关产品推荐

