You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为不同操作系统版本构建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.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 02:22:33