You need to enable JavaScript to run this app. 如何在GitLab CI中使用变量动态构建另一个变量?
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitLab CI中使用变量动态构建另一个变量?

GitLab CI/CD 动态构建变量实现方案

可以通过Bash的变量特性实现动态拼接变量名并取值,你之前的写法无法生效的原因是Shell会优先解析$TEST_为独立变量(该变量无定义默认是空值),仅会输出$CI_COMMIT_BRANCH的内容。

方法1:使用Bash间接变量扩展(更安全,推荐)

这是最稳妥的实现方式,避免eval可能带来的注入风险:

script:
  # 第一步:拼接得到完整的目标变量名,这里${CI_COMMIT_BRANCH^^}是把分支名转为大写,匹配你TEST_MASTER的命名规则
  - TARGET_VAR_NAME="TEST_${CI_COMMIT_BRANCH^^}"
  # 第二步:用间接扩展语法取目标变量的值
  - echo ${!TARGET_VAR_NAME}

如果你的分支名本身就是大写格式,把${CI_COMMIT_BRANCH^^}换成$CI_COMMIT_BRANCH即可。

方法2:使用eval实现(需确保分支名可控)

如果分支名是你完全可控的,也可以用eval语法一行实现:

script:
  - eval "echo \$TEST_${CI_COMMIT_BRANCH^^}"

注意要对第一个$转义,避免Shell提前解析不存在的$TEST_变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 10:48:03