如何创建YAML中包含结肠的配置文件



根据CI的棉布,此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是无效的,而且我找不到解决方法。或者,我必须在工具上编写代码以传递命令行参数,而不是读取配置文件。尽管如此,这种结肠的东西似乎是一个错误。

如果将整个行包裹在这样的引号中,则应该有效:

- 'echo "foo: $VAR" > site.yml'

gitlab的CI棉布标记为正确的语法。

有关更多信息,请参见此处。

@jawad所描绘的整行周围的单个引号,作品:

- 'echo "foo: $VAR" > site.yml'

但是,如果您的命令包含其他单个引号,我发现最容易使用pipe Block Scaleer样式:|

- |
  echo "I want to echo the key"
  echo 'foo: $VAR' > site.yml

可以在此处找到有关Block Scaler样式的更多文档:http://www.yaml.org/spec/spec/1.2/spec.html#id2760844

最新更新