根据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
线上的冒号,它的工作原理。
我想要做的是动态创建一些配置文件,以符合现有工具,使用私有变量,如echo "url: $CI_PROJECT_URL" > site.yml
来生成
url: "https://gitlab.com/group/project"
但我不能这样做,因为yaml被认为是无效的,我找不到变通办法。或者我必须在我的工具周围编写代码来传递命令行参数而不是读取配置文件。不过,这个冒号似乎是一个错误。
如@Jawad所描述的那样,整条线上的单引号有效:
- 'echo "foo: $VAR" > site.yml'
但如果你的命令包含其他单引号,我发现使用pipe
Block Scaler Style最简单:|
- |
echo "I want to echo the key"
echo 'foo: $VAR' > site.yml
有关Block Scaler样式的更多文档可以在这里找到:http://www.yaml.org/spec/1.2/spec.html#id2760844