Windows cmd环境GitLab CI如何用CI_COMMIT_BRANCH作为文件路径?
问题根因
你使用的 Windows cmd 执行 shell 不支持 Bash 风格的$变量名引用语法,所以你之前写的$CI_COMMIT_BRANCH会被当做字面量处理,不会解析为实际的分支值。
解决方案
cmd 环境下需要用%变量名%的格式引用环境变量,你可以按照以下方式修改你的.gitlab-ci.yml配置:
- 创建目录的命令调整为:
md D:\Artifacts\%CI_COMMIT_BRANCH%
如果路径中存在空格,可以给完整路径加英文双引号包裹:
md "D:\Artifacts\%CI_COMMIT_BRANCH%"
- 可选调试步骤:可以在创建目录前先执行
echo %CI_COMMIT_BRANCH%,查看作业日志输出确认变量能正常解析为对应分支名后,再正式执行目录创建和产物写入逻辑。
注意事项
- 请确认你的自托管 Runner 配置文件
config.toml中对应实例的配置项shell = "cmd"正确配置,没有被误设置为其他类型的shell。 - 如果你后续切换为 PowerShell 作为执行 shell,变量引用格式需要调整为
$env:CI_COMMIT_BRANCH。
内容的提问来源于stack exchange,提问作者rranjik
相关产品推荐
相关产品推荐

