圆ci中不允许使用无关键env

时间:2018-05-14 09:27:08

标签: mysql circleci circleci-2.0

在我的circle.yml我添加了env:标题来添加我的mysql环境变量设置,我在网上的一些例子中看到了它,它运行良好,我的构建通过。但是我得到了这个警告:

enter image description here

这就是我circle.yml

中的样子
docker:
  - image: elasticsearch:1.3.9
  - image: circleci/mysql:5.6
    env:
      - MYSQL_ALLOW_EMPTY_PASSWORD=true
      - MYSQL_HOST=127.0.0.1
      - MYSQL_ROOT_HOST=%
      - MYSQL_DATABASE=MyDB
environment:
  SBT_VERSION: 1.1.0
  SBT_OPTS: "-Xms512M -Xmx1536M -Xss1M"
.....

之前有人有这个吗?

2 个答案:

答案 0 :(得分:4)

免责声明:CircleCI Developer Advocate

这里有一些问题。这不是一个错误。正在使用错误的密钥。

  1. 这是一个.circleci/config.yml摘录而不是circle.yml前者是CircleCI 2.0,后者是CircleCI 1.0。

  2. 使用的密钥不应该是env,而应该是environment,就像之后使用几行一样。

  3. 在这种情况下,变量的语法没有错,但在某些情况下使用键和值语法会更好。

  4. 以下是配置的外观:

    docker:
      - image: elasticsearch:1.3.9
      - image: circleci/mysql:5.6
        environment:
          MYSQL_ALLOW_EMPTY_PASSWORD: true
          MYSQL_HOST: 127.0.0.1
          MYSQL_ROOT_HOST: %
          MYSQL_DATABASE: MyDB
    environment:
      SBT_VERSION: 1.1.0
      SBT_OPTS: "-Xms512M -Xmx1536M -Xss1M"
    

答案 1 :(得分:0)

不幸的是,这是团队确认的Circle CI中的一个错误。

更多信息并在此处进行跟踪:Yaml anchors now show as a schema violation

从帖子中引用:

  

YAML主播将继续工作 - 别担心。

     

我们现在正在努力的是停止允许新项目   如果他们有“无效配置”,则构建。配置无效有点   现在模糊不清理想情况下,我们想要制作任何额外的/未记录的   工作流程或作业下的YAML键是错误的(对于新项目   只)。

     

这里的目标是捕获配置中的拼写错误和错误。我们有很多   拼写错误的“环境”和“resource_class”的用户   现在,例如。像这样的错别字是目前无声的失败。一个   构建将运行这些拼写错误,但没有环境或   已指定的资源类。我们想要努力做到这一点   错误,指向YAML中有错误的键的明确指针。

     

新的配置错误警告是我们开始突出显示的一种方式   此类错误并收集有关最常见错误的数据   配置是。

     

我们希望将config.yml的顶层保持打开以允许任何   使用锚点引用的额外定义。对于我们的大多数人   例如,我们在内部项目中声明了docker镜像   顶级使用锚点,并在每个作业中引用它,以便干掉   配置。

     

我们还在开发一个模块化,可组合的配置系统   除了模式检查。我们希望允许您定义步骤,   作业和工作流程一次,然后跨项目重复使用。如果你的话   想了解更多相关信息,我很乐意聊天。

目前看起来似乎没有替代方案。