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

如何在GitLab CI流水线中存储多个变量供其他作业使用

GitLab CI 跨作业传递多个变量的方法

原理和单变量传递的逻辑一致,都是通过dotenv类型的制品报告实现,只需要在生成的.env文件中写入多组变量即可。

多变量传递完整配置示例

build:
  stage: build
  script:
    # 写入多个变量到.env文件,每行一个变量
    - echo "BUILD_VERSION=v1.2.3" >> build.env
    - echo "BUILD_TIMESTAMP=$(date +%s)" >> build.env
    - echo "COMMIT_AUTHOR=$(git log -1 --pretty=%an)" >> build.env
    # 带空格的变量值需要用引号包裹
    - echo "BUILD_DESC=\"正式版构建产物\"" >> build.env
  artifacts:
    reports:
      dotenv: build.env

deploy:
  stage: deploy
  script:
    # 直接用$+变量名即可访问所有传递过来的变量
    - echo "版本号:$BUILD_VERSION"
    - echo "构建时间戳:$BUILD_TIMESTAMP"
    - echo "提交作者:$COMMIT_AUTHOR"
    - echo "构建描述:$BUILD_DESC"
  dependencies:
    - build

核心规则说明

  • 所有需要传递的变量都逐行写入同一个.env文件,格式为变量名=变量值
  • 变量值包含空格、特殊字符时,需要用双引号包裹值,避免解析异常
  • 下游作业只要配置了dependencies关联上游生成.env文件的作业,就可以直接读取所有写入的变量,无需额外配置
  • 如果有多个上游作业都生成了dotenv报告,下游作业会自动合并所有变量,重名变量以后加载的为准

内容的提问来源于stack exchange,提问作者John Baltimore

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:15:02