Анализатором PHP YAML является documented разобрать подмножество YAML файлы конфигурация.
Он поддерживает только необходимые функции для обработки файлов конфигурации.
Одно то, что более трудно получить права, и то, что осталось из обрабатывает скалярных строк многострочных, документация даже заявляет, что гораздо проще реализовать многострочный цитируемый сообщений (т.е. скалярные строки) не поддерживаются.
Codebeautify, которые утверждают, что являются лучшим онлайн-сертификатором YAML, не могут обрабатывать этот правильный документ YAML с той же ошибкой, поэтому они, похоже, используют неполный парсер PHP YAML.
Если вы застряли с PHP, то вы можете сделать три вещи, тем более читаемым использует literal style scalars, как показано ниже (обратите внимание на |
после индикатора последовательности элементов -
):
sudo: false
language: php
php:
- 5.6
- 7.0
- 7.1
- hhvm
matrix:
allow_failures:
- php: 7.1
before_script:
- composer install --no-suggest ;
script:
- |
if [ "$TRAVIS_PHP_VERSION" == "7.0" ] ; then
vendor/bin/phpunit --coverage-clover clover.xml ;
vendor/bin/phpcs ;
else
vendor/bin/phpunit ;
fi
after_script:
- |
if [ "$TRAVIS_PHP_VERSION" == "7.0" ] ; then
vendor/bin/coveralls --coverage_clover=clover.xml -v ;
fi
это, однако изменяет строки в том, что новые строки сохранены.
Как и в случае с folded style scalar string, если бы не для отступов, это позволило бы удалить символы перевода строки в режиме загрузки YAML. Так что, если выше не работает, вы можете сделать:
sudo: false
language: php
php:
- 5.6
- 7.0
- 7.1
- hhvm
matrix:
allow_failures:
- php: 7.1
before_script:
- composer install --no-suggest ;
script:
- >-
if [ "$TRAVIS_PHP_VERSION" == "7.0" ] ; then
vendor/bin/phpunit --coverage-clover clover.xml ;
vendor/bin/phpcs ;
else
vendor/bin/phpunit ;
fi
after_script:
- >-
if [ "$TRAVIS_PHP_VERSION" == "7.0" ] ; then
vendor/bin/coveralls --coverage_clover=clover.xml -v ;
fi
И последний вариант переписать скалярные строки в одну строку:
sudo: false
language: php
php:
- 5.6
- 7.0
- 7.1
- hhvm
matrix:
allow_failures:
- php: 7.1
before_script:
- composer install --no-suggest ;
script:
- if [ "$TRAVIS_PHP_VERSION" == "7.0" ] ; then vendor/bin/phpunit --coverage-clover clover.xml ; vendor/bin/phpcs ; else vendor/bin/phpunit ; fi
after_script:
- if [ "$TRAVIS_PHP_VERSION" == "7.0" ] ; then vendor/bin/coveralls --coverage_clover=clover.xml -v ; fi
Этот последний вариант и загнутым нагрузки стиль точно то же, что и ваш источник YAML, более полным парсером YAML, чем тот, который используется PHP. Литеральный стиль загружает что-то другое, но это может работать, если ваше приложение обрабатывает новые строки и пробелы внутри этих скалярных строк таким же образом.
Это изменяет скаляр, вводя новые строки, которые могут не повлиять на результат в программе, но вы должны были указать это. – Anthon
Не понял, что это ответ на вопрос, я думаю, что буквальные скаляры стиля работают на Travis ** и ** Sensiolabs. – Anthon
~ @ Anthon Спасибо за подробный ответ! – 1f7