根据CI's lint ,此 yml 无效:
pages:
stage: deploy
image: python:3.5
script:
- echo "foo: $VAR" > site.yml
- cat ~/.python-gitlab.cfg
artifacts:
paths:
- _build
only:
- master
错误:
jobs:pages:script config should be a string or an array of strings
如果我删除
echo
上的冒号行,它有效。我想做的是动态创建一些配置文件,以符合现有工具,使用私有(private)变量,如
echo "url: $CI_PROJECT_URL" > site.yml
生产url: "https://gitlab.com/group/project"
但我不能这样做,因为 yaml 被认为是无效的,而且我没有找到解决方法。或者我必须围绕我的工具编写代码来传递命令行参数,而不是读取配置文件。不过,这个冒号的东西似乎是一个错误。
最佳答案
正如@Jawad 所描述的那样,整行的单引号起作用:
- 'echo "foo: $VAR" > site.yml'
但是,如果您的命令包含其他单引号,我发现使用
pipe
最简单。 block 缩放器样式:|
- |
echo "I want to echo the key"
echo 'foo: $VAR' > site.yml
更多关于 block 缩放器样式的文档可以在这里找到:http://www.yaml.org/spec/1.2/spec.html#id2760844
关于continuous-integration - 如何在 YAML 中创建包含冒号的配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43762269/