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

如何在CI/CD多阶段间共享BACKUP_FOLDER_NAME这类自定义变量?

在CI/CD多阶段中共享生成的文件夹名称并创建文件夹

在CI/CD流程中,不同阶段的Job运行在独立的执行环境中,默认环境变量无法跨阶段共享。要实现“在一个阶段生成文件夹名称,另一个阶段使用该名称创建文件夹”,可以通过以下两种常见方式实现:

方法1:通过Artifacts保存变量值到文件传递

这种方式适用于大多数CI/CD平台(如GitLab CI、GitHub Actions等),核心思路是把生成的文件夹名称写入文件,通过Artifacts传递到后续阶段,再读取文件内容复用变量。

示例CI配置:

stages:
  - generate_folder_name
  - create_folder

generate_folder_name:
  stage: generate_folder_name
  before_script:
    - cd publish
    - export TZ=Europe/Madrid
    - ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    - export BACKUP_FOLDER_NAME=$(date +%Y%m%d.%H%M)
  script:
    # 将变量值写入文件,注意路径对应之前cd的publish目录
    - echo "$BACKUP_FOLDER_NAME" > backup_folder_name.txt
  artifacts:
    # 指定要传递的文件路径
    paths:
      - publish/backup_folder_name.txt
    # 可选:设置文件过期时间,避免占用存储
    expire_in: 1h

create_folder:
  stage: create_folder
  # 依赖前一个阶段的Job,确保先执行并下载Artifacts
  needs: ["generate_folder_name"]
  script:
    - cd publish
    # 读取文件内容,赋值给变量
    - BACKUP_FOLDER_NAME=$(cat backup_folder_name.txt)
    # 创建目标文件夹
    - mkdir -p "$BACKUP_FOLDER_NAME"

方法2:通过Dotenv Artifacts自动注入环境变量(GitLab CI专属)

如果使用GitLab CI,可以利用dotenv类型的Artifacts,直接把变量导出为环境变量文件,后续阶段的Job会自动加载这些变量,无需手动读取文件。

示例CI配置:

stages:
  - generate_folder_name
  - create_folder

generate_folder_name:
  stage: generate_folder_name
  before_script:
    - cd publish
    - export TZ=Europe/Madrid
    - ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    - export BACKUP_FOLDER_NAME=$(date +%Y%m%d.%H%M)
  script:
    # 生成符合dotenv格式的文件,变量名=变量值
    - echo "BACKUP_FOLDER_NAME=$BACKUP_FOLDER_NAME" > backup_vars.env
  artifacts:
    reports:
      # 指定dotenv类型的报告文件
      dotenv: publish/backup_vars.env
    expire_in: 1h

create_folder:
  stage: create_folder
  needs: ["generate_folder_name"]
  script:
    - cd publish
    # 直接使用自动注入的环境变量创建文件夹
    - mkdir -p "$BACKUP_FOLDER_NAME"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 21:53:10