如何在GitLab CI YAML文件中指定包含空格的字符串文字?
例如,我使用如下方式调用gitlab-ci.yml文件中位于C:\Program Files(x86).\msbuild.exe的msbuild.exe
build:
- C:\Program Files (x86)\...\msbuild.exe MySolution.sln
字符串
我尝试使用单引号和双引号来封装路径,但lint失败。
有什么想法吗?谢谢
如何在GitLab CI YAML文件中指定包含空格的字符串文字?
例如,我使用如下方式调用gitlab-ci.yml文件中位于C:\Program Files(x86).\msbuild.exe的msbuild.exe
build:
- C:\Program Files (x86)\...\msbuild.exe MySolution.sln
字符串
我尝试使用单引号和双引号来封装路径,但lint失败。
有什么想法吗?谢谢
3条答案
按热度按时间qnyhuwrf1#
这就是诀窍:
字符串
请注意,PowerShell Dot sourcing operator .位于该行的开头。
rggaifut2#
这个link谈到了同样的问题。它已经有3年的历史了,从那时起GitLab改变了很多东西,链接中的答案不再相关。他们改变的事情之一是,当runner设置为
shell
类型时,它现在使用Windows PowerShell
而不是shell
.exe。这里有一个适合我的解决方案的例子:1.准备一个
build.bat
文件,类似这样:字符串
把它作为回购的一部分。
1.让
.gitlab-ci.yml
文件看起来像这样:型
mwg9r5ms3#
你通常会这样做(env是可选的,但改进readability):
字符串
以下是无效的YAML,即使这将是validpowershell语法:
型
请考虑:
型
同时:
型
如果你使用了windows语法would have been的默认shell:
型
注意,对于env变量,不能简单地使用:用途:
型
简单地说,因为
ProgramFiles(x86)
将被计算为before,所以该元素被加载。所以env var将导致:型
在这种情况下,您必须在脚本步骤中定义env变量:
型