首页 > 解决方案 > 使用 CI_COMMIT_BRANCH 分支名称作为文件路径

问题描述

我正在尝试设置一个管道,其中输出将被写入基于触发管道的分支的位置。

示例:如果分支是topic/124579,则输出必须写入D:/Artifacts/topic/124579

但是当我在我.gitlab-ci.yml的.CI_COMMIT_BRANCHD:/Artifacts/CI_COMMIT_BRANCH

这是我尝试过的一些事情

md D:/Artifacts/CI_COMMIT_BRANCH结果D:/Artifacts/CI_COMMIT_BRANCH和以前一样

md D:/Artifacts/$CI_COMMIT_BRANCH结果是D:/Artifacts/$CI_COMMIT_BRANCH

md D:/Artifacts/"$CI_COMMIT_BRANCH"也导致D:/Artifacts/$CI_COMMIT_BRANCH

我该怎么做呢 ?

我在一个自托管的 Windows 运行器上运行我的作业,cmd用作 shell。

标签: gitlabgitlab-ci

解决方案


首先检查你在 gitlab-ci 中设置了什么样的 shell

默认是PowerShell Core,在这种情况下变量替换应该使用$CI_COMMIT_BRANCH.
先试试$env:CI_COMMIT_BRANCH=$CI_COMMIT_BRANCH

但是以防万一您使用的是已弃用的 CMD shell,请尝试"%CI_COMMIT_BRANCH%"


OP rranjik评论中确认:

md D:/Artifacts/"%CI_COMMIT_BRANCH%"工作。


推荐阅读