2017-01-22 22 views
2

Я использую CI Lint tester, чтобы попытаться выяснить, как сохранить ожидаемый результат JSON, который я позже сравниваю с ответом curl. Ни одна из этих работ:Невозможно напечатать строку, содержащую двойные кавычки в GitLab CI YAML

Попытки 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, а также, без рабочего раствора.

ответ

5

Вы можете использовать сложенное обозначение блока скалярной стиля поместить определение на отдельную строку, не заботясь о процитировать:

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 

См this answer для объяснения этого и связанных с ними обозначений

+1

Вы могли бы расширить ответ с информацией о первом примере (сложенной строки многострочного), это довольно трудно догадаться, что он делает, как он сейчас. –