无法在GitLab CI YAML

时间:2017-01-22 21:10:17

标签: bash yaml gitlab gitlab-ci

我正在使用CI Lint tester尝试找出如何存储预期的JSON结果,我稍后将其与curl响应进行比较。这些都不起作用:

尝试1

---
  image: ruby:2.1
  script:
  - EXPECT_SERVER_OUTPUT='{"message": "Hello World"}'

失败:

  

在解析第4行第5列的块映射时未找到预期的键

尝试2

---
  image: ruby:2.1
  script:
  - EXPECT_SERVER_OUTPUT="{\"message\": \"Hello World\"}"

失败:

  

作业:脚本配置应该是哈希

我也试过使用echo的各种组合,没有可行的解决方案。

2 个答案:

答案 0 :(得分:10)

您可以使用折叠块标量 1 样式表示法将定义放在单独的一行而不必担心引用:

myjob:
  image: ruby:2.1
  script:
   - >
    EXPECT_SERVER_OUTPUT='{"message": "Hello World"}'

或者你可以转义嵌套的双引号:

  script:
  - "EXPECT_SERVER_OUTPUT='{\"message\": \"Hello World\"}'"

但您可能也想使用variables之类的:

my_job:
  variables:
     EXPECT_SERVER_OUTPUT: '{"message": "Hello World"}'
  image: ruby:2.1
  script:
   - dothething.sh

1 有关此及相关符号的说明,请参阅this answer

答案 1 :(得分:1)

我使它像这样工作:

  script: |
   "EXPECT_SERVER_OUTPUT='{\"message\": \"Hello World\"}'"
   echo $EXPECT_SERVER_OUTPUT