我正在尝试设置一个管道,根据触发管道的分支,将输出写入一个位置。
示例:如果分支是 topic/124579
,
然后必须将输出写入 D:/Artifacts/topic/124579
。
但是当我在 .gitlab-ci.yml
上使用它时,运行程序会创建一个名为 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
md D:/Artifacts/"$CI_COMMIT_BRANCH"
也会导致 D:/Artifacts/$CI_COMMIT_BRANCH
我该怎么做?
我在自托管的 Windows 运行器上运行我的作业,使用 cmd
作为外壳。
答案 0 :(得分:1)
首先检查什么kind of shell you have set in your gitlab-ci
默认值为 PowerShell Core,在这种情况下 variable substitution 应使用 $CI_COMMIT_BRANCH
。
先试试$env:CI_COMMIT_BRANCH=$CI_COMMIT_BRANCH
但万一您使用的是已弃用的 CMD shell,请尝试 "%CI_COMMIT_BRANCH%"
OP rranjik 在 the comments 中确认:
<块引用>md D:/Artifacts/"%CI_COMMIT_BRANCH%"
有效。