continuous-integration - 如何在 YAML 中创建包含冒号的配置文件?

标签 continuous-integration yaml gitlab-ci

根据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/

相关文章:

Azure 与用户上传的持续集成

mercurial - 在 Jenkins 中配置多个 Mercurial 存储库

ios - 在 Xcode 机器人上运行单元测试后生成 .gcda 文件

anchor - 跨 YAML 文件导出 anchor

docker - Gitlab CI运行docker review应用

maven - 避免 Jenkins 在 nexus 中多次上传发布 Artifact

c# - 如何解析 yaml 字符串

spring-boot - Spring Boot YML Config类继承

gitlab - 如何使用变量设置动态 gitlab 作业标签?

c++ - Gitlab CI 运行程序