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

尝试 1

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

失败:



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

失败:



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

最佳答案

您可以使用折叠块 scalar1 样式符号将定义放在单独的行上,而不必担心引用:

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 以获取对此和相关符号的解释

关于bash - 无法在 GitLab CI YAML 中打印包含双引号的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41796197/

10-10 17:37